Bitcoin Forum
May 03, 2024, 09:33:28 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 [530] 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 ... 814 »
  Print  
Author Topic: [1500 TH] p2pool: Decentralized, DoS-resistant, Hop-Proof pool  (Read 2591631 times)
smoothrunnings
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


View Profile
September 12, 2014, 09:42:32 AM
 #10581

So is there no formula and or rule for figuring out if the best incoming connections your own P2Pool node base on your internet connection speed?

Thanks,
1714772008
Hero Member
*
Offline Offline

Posts: 1714772008

View Profile Personal Message (Offline)

Ignore
1714772008
Reply with quote  #2

1714772008
Report to moderator
1714772008
Hero Member
*
Offline Offline

Posts: 1714772008

View Profile Personal Message (Offline)

Ignore
1714772008
Reply with quote  #2

1714772008
Report to moderator
1714772008
Hero Member
*
Offline Offline

Posts: 1714772008

View Profile Personal Message (Offline)

Ignore
1714772008
Reply with quote  #2

1714772008
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714772008
Hero Member
*
Offline Offline

Posts: 1714772008

View Profile Personal Message (Offline)

Ignore
1714772008
Reply with quote  #2

1714772008
Report to moderator
1714772008
Hero Member
*
Offline Offline

Posts: 1714772008

View Profile Personal Message (Offline)

Ignore
1714772008
Reply with quote  #2

1714772008
Report to moderator
smoothrunnings
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


View Profile
September 12, 2014, 10:06:12 AM
 #10582

How long should it take t complete a block at 3TH/s? My stats say 9h but it's been 13h already, I guessing I have hit a bad block?

Thanks
kgb2mining
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
September 12, 2014, 12:15:58 PM
 #10583

How long should it take t complete a block at 3TH/s? My stats say 9h but it's been 13h already, I guessing I have hit a bad block?

Thanks

You're getting blocks and shares mixed up.

The entire pool rate is averaging 3.5PH/s, which means the _pool_ will solve a block on average every 9 hours at that speed.  At 3TH/s you're going to average about 1-1.5 _shares_ in that same timeframe.

The amount of shares you complete is how your payouts are determined - if you have at least one active solved share in the blockchain when a block is found (on p2pool) you will receive a payout.  Depending on the node frontend you're using that information can be found pretty easily and presented on the front page, on others it may require a little more digging.

At about 3TH/s you should expect a payout of between .02 - .03 BTC with every block at the current pool hash rate.
smoothrunnings
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


View Profile
September 12, 2014, 12:24:40 PM
 #10584

How long should it take t complete a block at 3TH/s? My stats say 9h but it's been 13h already, I guessing I have hit a bad block?

Thanks

You're getting blocks and shares mixed up.

The entire pool rate is averaging 3.5PH/s, which means the _pool_ will solve a block on average every 9 hours at that speed.  At 3TH/s you're going to average about 1-1.5 _shares_ in that same timeframe.

The amount of shares you complete is how your payouts are determined - if you have at least one active solved share in the blockchain when a block is found (on p2pool) you will receive a payout.  Depending on the node frontend you're using that information can be found pretty easily and presented on the front page, on others it may require a little more digging.

At about 3TH/s you should expect a payout of between .02 - .03 BTC with every block at the current pool hash rate.


So I if I have found 20 shares in 15 hours say and not received a single payout I guess this means a block wasn't found in 15 hours?

kgb2mining
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
September 12, 2014, 01:01:43 PM
 #10585

So I if I have found 20 shares in 15 hours say and not received a single payout I guess this means a block wasn't found in 15 hours?
Correct.  Those 20 shares will count towards your payout whenever a block is found within 24 hours of that share.  It's a rolling system, so as old shares drop off new shares will count towards new blocks.

smoothrunnings
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


View Profile
September 12, 2014, 01:09:30 PM
 #10586

So I if I have found 20 shares in 15 hours say and not received a single payout I guess this means a block wasn't found in 15 hours?
Correct.  Those 20 shares will count towards your payout whenever a block is found within 24 hours of that share.  It's a rolling system, so as old shares drop off new shares will count towards new blocks.



So if in 3 days say there has been zero payment, does this still mean no blocks were found?

jonnybravo0311
Legendary
*
Offline Offline

Activity: 1344
Merit: 1023


Mine at Jonny's Pool


View Profile WWW
September 12, 2014, 01:41:43 PM
 #10587

So I if I have found 20 shares in 15 hours say and not received a single payout I guess this means a block wasn't found in 15 hours?
Correct.  Those 20 shares will count towards your payout whenever a block is found within 24 hours of that share.  It's a rolling system, so as old shares drop off new shares will count towards new blocks.



So if in 3 days say there has been zero payment, does this still mean no blocks were found?


Are you saying you have 20 shares on the chain, yet have received no payout in 3 days?  Since 9/9 p2pool has found 11 blocks.  There's something wrong with your setup if your logs are saying you've found 20 shares in that time, but you've received nothing.

Jonny's Pool - Mine with us and help us grow!  Support a pool that supports Bitcoin, not a hardware manufacturer's pockets!  No SPV cheats.  No empty blocks.
smoothrunnings
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


View Profile
September 12, 2014, 01:56:26 PM
 #10588

So I if I have found 20 shares in 15 hours say and not received a single payout I guess this means a block wasn't found in 15 hours?
Correct.  Those 20 shares will count towards your payout whenever a block is found within 24 hours of that share.  It's a rolling system, so as old shares drop off new shares will count towards new blocks.



So if in 3 days say there has been zero payment, does this still mean no blocks were found?


Are you saying you have 20 shares on the chain, yet have received no payout in 3 days?  Since 9/9 p2pool has found 11 blocks.  There's something wrong with your setup if your logs are saying you've found 20 shares in that time, but you've received nothing.

My site is in my tag. http://p2pool.smoothrunnings.ca:9332/

No I am just trying to make a point of asking because back before Neptune's were even being shipped there were times where we would be waiting for days for the payout to happen because of bad block or something in the chain. It was affecting everyone not matter which pool use used.

jonnybravo0311
Legendary
*
Offline Offline

Activity: 1344
Merit: 1023


Mine at Jonny's Pool


View Profile WWW
September 12, 2014, 02:10:39 PM
 #10589

So I if I have found 20 shares in 15 hours say and not received a single payout I guess this means a block wasn't found in 15 hours?
Correct.  Those 20 shares will count towards your payout whenever a block is found within 24 hours of that share.  It's a rolling system, so as old shares drop off new shares will count towards new blocks.



So if in 3 days say there has been zero payment, does this still mean no blocks were found?


Are you saying you have 20 shares on the chain, yet have received no payout in 3 days?  Since 9/9 p2pool has found 11 blocks.  There's something wrong with your setup if your logs are saying you've found 20 shares in that time, but you've received nothing.

My site is in my tag. http://p2pool.smoothrunnings.ca:9332/

No I am just trying to make a point of asking because back before Neptune's were even being shipped there were times where we would be waiting for days for the payout to happen because of bad block or something in the chain. It was affecting everyone not matter which pool use used.


Gotcha... sorry, didn't read it properly I guess.  Not enough coffee yet Smiley  Looking at your node I can see that you've got a few shares on the chain and are expecting a payout when the pool next finds a block.  I can also see that you've received a few payouts already at your address, so things are working as expected.

Maybe I'm also reading your reply incorrectly here as well, but with p2pool you don't wait for days for a payout.  As soon as a block is found you get paid if you've got valid shares on the chain.  Have there been times when it's taken a while to find a block?  Sure.  That's variance for you.  I'm not entirely sure what you mean by "a bad block or something in the chain".  If the block is orphaned, then you won't get a payout for it.  Other than that case, I don't know what a "bad block" is.  Any solved block that makes it onto the BTC block chain distributes 25BTC and transaction fees.  In p2pool's case, that amount is distributed to all miners who happen to have valid shares on the share chain: 0.5% to the block finder, the remaining 99.5% to the other shares.

Jonny's Pool - Mine with us and help us grow!  Support a pool that supports Bitcoin, not a hardware manufacturer's pockets!  No SPV cheats.  No empty blocks.
smoothrunnings
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


View Profile
September 12, 2014, 02:41:20 PM
 #10590

So I if I have found 20 shares in 15 hours say and not received a single payout I guess this means a block wasn't found in 15 hours?
Correct.  Those 20 shares will count towards your payout whenever a block is found within 24 hours of that share.  It's a rolling system, so as old shares drop off new shares will count towards new blocks.



So if in 3 days say there has been zero payment, does this still mean no blocks were found?


Are you saying you have 20 shares on the chain, yet have received no payout in 3 days?  Since 9/9 p2pool has found 11 blocks.  There's something wrong with your setup if your logs are saying you've found 20 shares in that time, but you've received nothing.

My site is in my tag. http://p2pool.smoothrunnings.ca:9332/

No I am just trying to make a point of asking because back before Neptune's were even being shipped there were times where we would be waiting for days for the payout to happen because of bad block or something in the chain. It was affecting everyone not matter which pool use used.


Gotcha... sorry, didn't read it properly I guess.  Not enough coffee yet Smiley  Looking at your node I can see that you've got a few shares on the chain and are expecting a payout when the pool next finds a block.  I can also see that you've received a few payouts already at your address, so things are working as expected.

Maybe I'm also reading your reply incorrectly here as well, but with p2pool you don't wait for days for a payout.  As soon as a block is found you get paid if you've got valid shares on the chain.  Have there been times when it's taken a while to find a block?  Sure.  That's variance for you.  I'm not entirely sure what you mean by "a bad block or something in the chain".  If the block is orphaned, then you won't get a payout for it.  Other than that case, I don't know what a "bad block" is.  Any solved block that makes it onto the BTC block chain distributes 25BTC and transaction fees.  In p2pool's case, that amount is distributed to all miners who happen to have valid shares on the share chain: 0.5% to the block finder, the remaining 99.5% to the other shares.

Don't let those payouts fool you. This is what happened.

I powered my P2Pool backup on my ESXi host.
Pointed my Neppy to it and got one payout, then took it down to patch P2Pool; I couldn't remember the commands.
Started P2Pool again and few hours later I got the next payment; deciding I wanted my friend to use my P2Pool I stopped P2Pool once more and removed the --fee from the start command and restarted P2Pool.
Those shares you are seeing is from the last restart point.

In the past I have seen it were I wait for days before receiving any payout or after the 2nd or 3rd day doing a shutdown/reboot of the P2Pool before it starts paying out in a timely rate, almost if there is some bug in the P2Pool code itself.

On my firewall I have both 9332 and another port open to my P2Pool server.

I used to run this when I had two Avalon's, 30 of the 333Mhs USB keys and 5 ice furys.

jonnybravo0311
Legendary
*
Offline Offline

Activity: 1344
Merit: 1023


Mine at Jonny's Pool


View Profile WWW
September 12, 2014, 02:59:57 PM
 #10591

Don't let those payouts fool you. This is what happened.

I powered my P2Pool backup on my ESXi host.
Pointed my Neppy to it and got one payout, then took it down to patch P2Pool; I couldn't remember the commands.
Started P2Pool again and few hours later I got the next payment; deciding I wanted my friend to use my P2Pool I stopped P2Pool once more and removed the --fee from the start command and restarted P2Pool.
Those shares you are seeing is from the last restart point.

In the past I have seen it were I wait for days before receiving any payout or after the 2nd or 3rd day doing a shutdown/reboot of the P2Pool before it starts paying out in a timely rate, almost if there is some bug in the P2Pool code itself.

On my firewall I have both 9332 and another port open to my P2Pool server.

I used to run this when I had two Avalon's, 30 of the 333Mhs USB keys and 5 ice furys.
I'm not letting anything fool me here.  According to your node, the node has found a total of 7 shares since you started it.  1 of which is an orphan, 1 of which is dead.  Your node has found a share since my first reply to you (it was a total of 6 at that point).  Your expected payout is currently 0.02889951BTC.  You received 3 payouts recently (equivalent to 1 share on the chain at the time) from blocks 320161, 320165 and 320217.  320217 was the last block found by p2pool, and that was just about 18 hours ago.  When the next block is found, you will receive a payout at your address for the expected payout amount from the weighted shares you have on the chain at the time the block is found.

In the past you might have waited for days because p2pool didn't find blocks for days.  It's not because of any bug in the p2pool code, it's the nature of how the PPLNS system works.  You need to get shares onto the chain.  Until you do, you get no payout.  You could turn your node and miners off right now, and if p2pool found a block, you'd still get paid for the shares you have on the chain, and would continue to be paid every time p2pool found a block until such time as you no longer had shares on the chain.

In short, there's nothing wrong with your setup.  In fact, you're actually doing a bit better than expected in terms of shares vs. your hash rate.  As of right now, p2pool believes you're hashing at over 4TH/s based on your expected payout.

Jonny's Pool - Mine with us and help us grow!  Support a pool that supports Bitcoin, not a hardware manufacturer's pockets!  No SPV cheats.  No empty blocks.
MissouriMiner
Sr. Member
****
Offline Offline

Activity: 312
Merit: 250



View Profile
September 12, 2014, 06:58:04 PM
Last edit: September 13, 2014, 02:56:28 AM by MissouriMiner
 #10592

I've seen other people have issues with "Failure: twisted.internet.defer.TimeoutError: in _on_discovery_timeout" in their p2pool log.  I had these messages as well.  Some people commented on system performance. There may be issues with system performance, but that is definitely not my issue.  My server is smokin' with dedicated business network line.  Smiley   Anyway, it was my iptables config.  In addition to the standard bitcoind and p2pool ports, I also had to open up UDP for port 1900, both inbound and outbound.  I am still a bit confused as to why port 1900, because I think that port is for uPnP, which I'm not really using and is disabled on my router.  If it is for uPnP updates only, then I could have probably just ignored the message anyway.  And, the next time I restart the service, I will specifically set uPnP=0 to see if that stops the traffic on port 1900.  But I don't want to restart my service just for that.  Having port 1900 open does cause a bit more traffic, of course, but it's nothing to worry about unless you are already struggling with system performance.

For your reference, here is my iptables config.  I'm running both Bitcoin and Litecoin P2Pool.  My Litecoin P2Pool is using p2p port 10333, since 9333 conflicts with bitcoind.  My host is also running DNS and NTP, so those ports are open.  And I am allowing ping.  Most ports are configured with limits as minimal protection against DDoS attacks.  I know the limits won't prevent hard-core DDoS attacks.

# Generated by iptables-save v1.4.12 on Fri Sep 12 13:48:46 2014
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:LOGNDROP - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -p udp -m udp --dport 123 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9327 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9332 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -p udp -m udp --dport 1900 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9333 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 10333 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8333 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9338 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A INPUT -j LOGNDROP
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 0 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 123 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 1900 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 8333 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 9333 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 9338 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 10333 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
-A OUTPUT -j LOGNDROP
-A LOGNDROP -p tcp -m limit --limit 5/min -j LOG --log-prefix "IPTables Denied TCP: " --log-level 7
-A LOGNDROP -p udp -m limit --limit 5/min -j LOG --log-prefix "IPTables Denied UDP: " --log-level 7
-A LOGNDROP -j DROP
COMMIT
kgb2mining
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
September 12, 2014, 07:15:33 PM
 #10593

Maybe I'm also reading your reply incorrectly here as well, but with p2pool you don't wait for days for a payout.  As soon as a block is found you get paid if you've got valid shares on the chain. 
As long as you account for the roughly 12 hours for confirmation before payment, yes, it's immediate after the block is found.
jonnybravo0311
Legendary
*
Offline Offline

Activity: 1344
Merit: 1023


Mine at Jonny's Pool


View Profile WWW
September 12, 2014, 07:54:07 PM
 #10594

Maybe I'm also reading your reply incorrectly here as well, but with p2pool you don't wait for days for a payout.  As soon as a block is found you get paid if you've got valid shares on the chain. 
As long as you account for the roughly 12 hours for confirmation before payment, yes, it's immediate after the block is found.
I made no mention of when the coins would become spendable... just when they are paid out - and that's upon the finding of the block.  It's 101 confirmations before they're spendable.

Jonny's Pool - Mine with us and help us grow!  Support a pool that supports Bitcoin, not a hardware manufacturer's pockets!  No SPV cheats.  No empty blocks.
smoothrunnings
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


View Profile
September 12, 2014, 08:24:03 PM
 #10595

Maybe I'm also reading your reply incorrectly here as well, but with p2pool you don't wait for days for a payout.  As soon as a block is found you get paid if you've got valid shares on the chain. 
As long as you account for the roughly 12 hours for confirmation before payment, yes, it's immediate after the block is found.
I made no mention of when the coins would become spendable... just when they are paid out - and that's upon the finding of the block.  It's 101 confirmations before they're spendable.

My "payout if a block found now" has been slowly dropping in numbers, now it doesn't appear at all, is this still normal?
smoothrunnings
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


View Profile
September 12, 2014, 08:25:44 PM
 #10596

Where do I find my P2Pool logs, I am running Linux (OpenSUSE).

thanks,
hamburgerhelper
Member
**
Offline Offline

Activity: 83
Merit: 10


View Profile
September 12, 2014, 08:27:52 PM
 #10597

No issues at all, and it is much faster with hardly any resource usage.

No need to compile it, it's ready to run from within the client folder. Yes, I run it with the standard p2pool code.

Well worth it  Smiley

Edit: Makes me wonder how much better p2pool would be if it was also in C++......

I've also starting using the C++ client. It came down to RAM usage. Here's average usage on my node:

Matt's Java client: 150 MB
Matt's fork of p2pool + Relay Node: About 50 MB more RAM usage than vanilla p2pool
Matt's C++ client: 2MB

So since RAM is very limited on my node the C++ client is the clear winner. Also it gives you the flexibility to upgrade the Relay Node client without restarting p2pool which can be painful, mess up stats, and/or cost you shares.
smoothrunnings
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


View Profile
September 12, 2014, 10:01:06 PM
 #10598

If I have 0.02504662 on my P2Pool server and want to send them to other wallet do I only need to subtract 0.001 BTC from it or is the fee higher?

I wish someone would create a bitcoin transfer calculator app or website so people like me can figure it out faster. LOL

Smiley
IYFTech
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500


WANTED: Active dev to fix & re-write p2pool in C


View Profile
September 12, 2014, 10:18:07 PM
 #10599

If I have 0.02504662 on my P2Pool server and want to send them to other wallet do I only need to subtract 0.001 BTC from it or is the fee higher?

I wish someone would create a bitcoin transfer calculator app or website so people like me can figure it out faster. LOL

Smiley


Don't keep BTC on your pool server, it's a security risk. Mine your coins to a different wallet on a different machine - much safer & saves you having to keep sending small amounts out all the time.

I know this thread is long, but there is a wealth of information here & you will find answers to 99% of your questions if you use the search function  Wink

-- Smiley  Thank you for smoking  Smiley --  If you paid VAT to dogie for items you should read this thread:  https://bitcointalk.org/index.php?topic=1018906.0
smoothrunnings
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


View Profile
September 12, 2014, 10:21:34 PM
 #10600

If I have 0.02504662 on my P2Pool server and want to send them to other wallet do I only need to subtract 0.001 BTC from it or is the fee higher?

I wish someone would create a bitcoin transfer calculator app or website so people like me can figure it out faster. LOL

Smiley


Don't keep BTC on your pool server, it's a security risk. Mine your coins to a different wallet on a different machine - much safer & saves you having to keep sending small amounts out all the time.

I know this thread is long, but there is a wealth of information here & you will find answers to 99% of your questions if you use the search function  Wink

Answers like this make most people cut down their coins by 0.001 and risk it. This a community that people are supposed to help one another, and not make it hard for people to find the answers to things. Tongue
Pages: « 1 ... 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 [530] 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 ... 814 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!