Bitcoin Forum
November 16, 2024, 11:17:39 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 [2] 3 4 5 »
21  Economy / Games and rounds / Re: Lottery mining blocks (BTC and lightning accepted) on: July 05, 2022, 01:33:39 PM
First and Demo order :

0.001 ₿ on 1RomFwxiefTYMRbvgGFoe58KaN1hEUT6Z

https://soloblocks.io/dashboard/1RomFwxiefTYMRbvgGFoe58KaN1hEUT6Z

Update after 24h : no block found Smiley
0.016% Luck (edit: removed 0.044, I added 40 petahash from last week by mistake)
22  Bitcoin / Pools / Re: [ANN] ⛏️ Soloblocks.io - 0.4% SOLO Mining Pool with Provable payouts. on: July 05, 2022, 09:41:30 AM
So, let me see if I understand. I never mined so I don't know the process of connecting a miner to a pool.

You should try only one time in your life by plugging some hashrate from nicehash. Its cheap now Smiley

Don't know how it looks like.
Users with miners/farms doesn't even need to register a user account in your pool? How does that happens? I'm just curious, btw!

Users and farm uses a bitcoin address as a login. With farms, I can define a password to access data.
You simply connect using yourbitcoinaddress.workername and you use your bitcoin address on the front page to get access to statistics, shares, and graphs.

Code:
 ./minerd -a sha256d -o stratum+tcp://soloblocks.io:3333 -O 3LzaP3iNz5n9mM7edi6eHGyLGY5Yk31SE8.Workername:x -D -P
23  Bitcoin / Pools / Re: [ANN] ⛏️ Soloblocks.io - 0.4% SOLO Mining Pool with Provable payouts. on: July 04, 2022, 09:54:10 PM
Hello.
Are you working on this alone? Will you be able to take care of it if user database grows? Or you have other people helping you? This seems quite a lot for a single person, no? If you mind me asking, did you already have the funds to start this or how did you got them?

Anyway, good luck and which you success. More pools might mean a bit more decentralization which is always welcome!

Hey.

I work on this alone. Mining pool, api, frontend.

Database is redis, shares are flushed every round (10 minutes) and sharecounts displayed in the frontend are stored 24h (take a look on my order here : https://soloblocks.io/dashboard/1RomFwxiefTYMRbvgGFoe58KaN1hEUT6Z)
The only data I store longterm are blocks and miners who found blocks for the record.
It cost me some money for baremetal servers but I plan to keep it longterm and progressively raise the hashrate with partnerships with some farms (september / octobrer 2022) and deploy servers on new locations and tcp loadbalancers in frontal.

With the combination of loadbalancing and vardiff, I can scale to many exahash without problem.

Max reached is only 40 phs but I plan to plug 250 in a few months.

I don't have machines, so it's at my clients confidence.

Thank you for the good luck, I am confident.

If one day I can raise money, I have already a payout script to pay users and it's only a matter of 2-3 hours to change the code to adapt it to PPS. (edit : plus create a company with shareholders to keep it running if I die)
24  Bitcoin / Pools / Re: [ANN] Soloblocks.io - 0.4% SOLO Mining Pool on: July 04, 2022, 06:00:16 PM
I see no reason to mine here, and the basic point is trust.
Better think of putting a deposite of 6.25 BTC to an highly trusted escrow here in the forum, to cover a possible exit scam.
* a discusion we had years ago, and ck came up with this idea.
With that you may convince some miners to work here.
That's because you don't know well how Mining works.

Oh, editing your first replay and replace it with that, is not what build up trust.
---------------
anyway, the procedure to check the shares, is the right direction.
Not new, Analpaper did mention this years ago and he got a git repo of modifyed code for ckpool, you may take a look.
https://github.com/ctubio/php-proxy-stratum

I wish you good luck

Yes I deleted because I thought my answer wasn't appropriate.
Instead of my reply, I've done my homework to basically prove that I'm legit Smiley

When you said that my platform was trusless, I wasn't able to sleep to I spent time at night to break stratum to get this information.

Will use that instead, thanks for the advice Smiley
Edit : Gave a look at your repo, I don't see useful code but maybe I miss something
25  Bitcoin / Bitcoin Discussion / Re: Lost everything in 2012, Lost everything in 2018, now building since 2020 on: July 04, 2022, 03:16:18 PM
You've got the boat and I think that's still something big to consider despite you've sold mostly at that time. Looking back at that date, you're an achiever and not everyone is able to do that. Although looking at those quantities right now despite we're in a correction, that's a lot and we  always get to compare past and present.
But that's really our lives, we get to have a day for selling and buying things that we want. I just wish you all the best and hopefully, you'll continue to be at best shape since you're already back on track.

Thanks for your kind words.

Oh you wanna know what's crazy ? I've sold the boat to a girl in 2018, she never paid me.
26  Bitcoin / Bitcoin Discussion / Re: Lost everything in 2012, Lost everything in 2018, now building since 2020 on: July 04, 2022, 03:04:08 PM
Why don't you try to recover your 6 bitcoin from your formatted computer if it was never been touched after formatted you can maybe still have a chance to recover the wallet.

Actually, I have the same experience that I never forget in the year 2018 I was almost depressed and forgot my holdings at that time because two important persons in my life die from illness and cancer. But I am still lucky that I sold them at a very cheap price. At that time I want to commit suicide but I'm thinking about the people I'll leave behind. 2018 is pretty bad luck to me.


I've written the whole disk after formatting to play to eve online  Grin
I have the disks but getting the data back from a reputable data restauration company costs thousands of dollars Smiley

Deeply sorry about your loss and your friends.



I think you can bounce back too and recover part of your supposed to be gain from your previous holdings.

Yes I will, since covid pandemic I hold and buy more than ever. The dump didn't affected me this time so I have balls to a next bull market



12 BTC would take you a long way. Say everything is in the past.

How about I try again and get all 21 million?

I should go check my spenditure at mining rig rentals.

Yes, I'm in contact with a mining farm based in Africa, they have enough hashrate to mine solo on my pool and they will, I can get back 21 millions sats  Grin

[moderator's note: consecutive posts merged]
27  Bitcoin / Bitcoin Discussion / Lost everything in 2012, Lost everything in 2018, now building since 2020 on: July 04, 2022, 02:09:12 PM
I'm an old bitcoiner and thought my story could help others.

I've downloaded Bitcoin in March 2009, as my bank account was frozen for a debt of 200 euros, and when your account is frozen you don't have the ability to have another bank account in France.
I've tried to find an alternative way of storing digital value in a P2P manner and found out about Bitcoin to pay for my server.

I've mined with my CPU but I cannot found a single block (mining was built-in bitcoin core at this time) so I uninstalled it as the ecosystem was too tiny.

In 2011, I came back and saw that an exchange popped, mtgox, and GPU miners, bitcointalk.

I was working as a life assistant for an handicaped person and we decided to mine Bitcoin with her computer.
We mined 6 bitcoins in 4 months.

In 2012, It was worth a few dollars and didn't remember that I haven't saved my wallet, I formatted my computer. Bye bye the 6 bitcoins. I was working as a store merchant employee.

Disgusted in 2013 as I saw the price climbing. I bought some bitcoins onto localbitcoins and starts DCAing with my 450 euros monthly paycheck, 20 euros each month.

I dived into Ethereum in 2014 and put money at the ICO. In 2016, as the value soared, I've sold most of my 200 hard gained bitcoins and my 2000 ether but decided to work full time on bitcoin. I've bought a 4500 euro boat (450 ether at this time) to have a spot where I can live without paying a rent. And it cost me every single ether and bitcoin earned.

Bull market in 2017 was hard, as I spent more coins than I earned. So In 2018, I was back at 0 with a huge mental depression.

Since 2020, I work on mining pools as a Lead Engineer, working helped me a lot to focus and forgot depression.

And in 2022, I'm more bullish than ever but am still at 0.1 Bitcoins.

So I decided to make a solo mining pool with provably output jobs and started developing it in 2020 in Golang and from scratch.

Now all my bitcoin life is onto these two projects :

- [ANN] ⛏️ Soloblocks.io - 0.4% SOLO Mining Pool with Provable payouts.
- [ANN] Lottery mining blocks (BTC and lightning accepted)

If you have jobs where I can bring my passion and devotion, my pm are opened.
If you want to help and get a reward, you can try mining on my mining pool.
If you want to help and get a reward, you can try my lottery.

I'm selling the mining pool for 12 bitcoins if you want.

I think my level of understanding of bitcoin is atypical.

For my twitter handle: send a pm.
28  Bitcoin / Bitcoin Discussion / Re: Peter Schiff account frozen on: July 04, 2022, 12:38:24 PM
That's exactly what happens to many Bitcoiners in France, Kinda funny that it happens too on Peter Schiff

Banks are frozing assets when you make a wire transfert to exchanges in France
29  Bitcoin / Pools / Re: [ANN] ⛏️ Soloblocks.io - 0.4% SOLO Mining Pool with Provable payouts. on: July 04, 2022, 12:24:04 PM
I received a PM from the OP and ran the steps as indicated above and it does work as described.

So yes he is doing what he says he is doing.
And a big kudos to him for taking the time to prove it.


Could it change in the future? Sure but so could any solo mining pool so that is not something I would worry about. A little bit of batch scripting and you can run everything in a semi-automated way to make sure it does not.

Unlike a lot of other pool operators here, a big thumbs up in general since unlike a lot of other pool operators he looked at the issues we brought up and fixed them instead of ignoring them.

-Dave



Thanks for taking the time to verify by yourself Smiley. I've sent you some Merit Smiley.
And thank you for your kind message, this boosts me a lot.
Batch scripting is in my todolist (for multi pool check) but god damn I have a lot of work and I don't know yet how can I decode the payout script without using bitcoin core. Maybe i'll found something in golang.
30  Economy / Games and rounds / Re: Lottery mining blocks (BTC and lightning accepted) on: July 04, 2022, 11:59:43 AM
First and Demo order :

0.001 ₿ on 1RomFwxiefTYMRbvgGFoe58KaN1hEUT6Z

https://soloblocks.io/dashboard/1RomFwxiefTYMRbvgGFoe58KaN1hEUT6Z
31  Local / Mining et Hardware / Re: Loterie de minage : une chance sur 62 de miner 6.25 bitcoin (ou plus) on: July 04, 2022, 11:59:03 AM
Premier ordre démo :

0.001 ₿ on 1RomFwxiefTYMRbvgGFoe58KaN1hEUT6Z

https://soloblocks.io/dashboard/1RomFwxiefTYMRbvgGFoe58KaN1hEUT6Z
32  Local / Mining et Hardware / Loterie de minage : une chance sur 62 de miner 6.25 bitcoin (ou plus) on: July 04, 2022, 11:55:19 AM
Hey

J'aimerai animer une loterie où tu peux directement envoyer un ordre nicehash sur une pool qui ne prends que 0.4% de frais, et ainsi espérer récolter un block.
Je lance vos ordres dès que j'ai reçu votre paiement et addresse de récompense.

La confiance est toujours un soucis, donc n'hésitez pas à tester avec des petits montants pour commencer.
Je posterai toutes les semaines pour vous dire que je suis op. Pour plus de confiance à propos des payouts, je vous invite à lire les deux URL en bas de topic.

Process :

 - Envoyer de 0.001 btc à 0.1 ₿ à 3Bw9TUPKRA5tHEqEiVvEvWuYV6kPewFNJ4, envoyez le depuis votre adresse de payout surtout. (Message privé pour lightning network)
 - Répondez à ce post ou par Message Privé avec votre adresse de payout.
 - Allez sur https://soloblocks.io avec votre adresse de payout et attendez que le hashrate pump.
 - Vous pouvez setup vous même un ordre Nicehash sans mon intervention si vous ne me faites pas assez confiance. (adresse du port est le 3334 pour les ordres nicehash)

Nicehash process:

 - Je prends le prix pour obtenir un hashrate instantané. En ce moment c'est 0.0044 ₿/Phs/jour
 - Je setup un ordre de 220 ths tous les 0.001 ₿ envoyés (24 heures de mining: Si vous envoyez 0.01 ₿ ce sera un ordre de 2.2 phs pour 24 heures)
 
Luck:

 - Chances sont de 1/6,250 chances de taper un block en 24h avec 0.001 ₿ et 220 Ths.
 - Chances sont de 1/3,125 chances de taper un block en 24h avec 0.002 ₿ et 440 Ths.
 - Chances sont de 1/625 chances de taper un block en  24h with 0.01 ₿ et 2.2 Petahas.
 - Chances sont de 1/312 chances de taper un block en  24h with 0.02 ₿ et 4.4 Petahas.
 - Chances sont de 1/62.5 chances de taper un block en 24h avec 0.1 ₿ et 22 Pehatash.

Si t'as suffisamment de chance, tu peux taper 2 blocks dans ton ordre Smiley
Les frais de la pool sont de 0.4%, donc tu obtiens 99.6% de la block reward (6.25 + frais de transactions).

Mining pool a des payouts prouvable : check https://bitcointalk.org/index.php?topic=5397166.msg60503248#msg60503248
Mining pool ANN : https://bitcointalk.org/index.php?topic=5397166.msg60503248

De 0.001 à 0.1 ₿
33  Local / Mining et Hardware / Re: Soutenez un developeur Francais de firmwares !!! on: July 04, 2022, 11:43:03 AM
Super initiative. Tu as du code opensource ?

Je t'invite à tester sur soloblocks.io
34  Economy / Games and rounds / Lottery mining blocks (BTC and lightning accepted) on: July 04, 2022, 11:25:59 AM
Hey

I'm the creator of https://soloblocks.io

I want to animate a lottery where you can directly send nicehash orders on my Nicehash address, i'll launch the order as soon as I got your address.
I know that trust is an issue as always, don't trust me, trust provable payouts.
Every week I will post on this topic to let you know i'm here and ready to handle your transactions.

Process :

 - Send from 0.001 btc to 0.1 ₿ to 3Bw9TUPKRA5tHEqEiVvEvWuYV6kPewFNJ4 sent from your payout address (pm me for lightning network)
 - Reply in this post or via Direct Message with your payout address
 - Go on soloblocks.io with your payout address and wait for hashrate to rocket pump.
 - Of course you can setup your own nicehash order without me if you don't trust my nicehash account (port is 3334)

Nicehash process:

 - I take the price where I got hashrate instantly. Now at 0.0044 ₿/th/day
 - I setup a 220 ths order each 0.001 ₿ sent (24 hours of mining : if you send 0.01 ₿ it would be a 2.2 phs order for 24 hours)
 
Luck:

 - Odds are 1/6,250 chances to get a block in the next 24h with 0.001 ₿ and 220 Ths.
 - Odds are 1/3,125 chances to get a block in the next 24h with 0.002 ₿ and 440 Ths.
 - Odds are 1/625 chances to get a block in the next 24h with 0.01 ₿ and 2.2Phs.
 - Odds are 1/312 chances to get a block in the next 24h with 0.02 ₿ and 4.4Phs.
 - Odds are 1/62.5 to get a block in the next 24h with 0.1 ₿.

If you are lucky enough, you can mine 2 or more blocks for the same order Smiley
Pool fee is as low as 0.4%, so you get 99.6% of the whole block reward.

Soloblocks.io has provable payouts : check https://bitcointalk.org/index.php?topic=5397166.msg60503248#msg60503248
Soloblocks.io ANN : https://bitcointalk.org/index.php?topic=5397166.msg60503248

You can start from 0.001 to 0.1 ₿
35  Bitcoin / Mining speculation / Re: Lottery Mining on: July 04, 2022, 10:42:08 AM
Just a reply to let you know that https://soloblocks.io has integrated a luck simulator (indicates odds of finding a block on the next 24 hours, 3 hours and 15 minutes)

More to come, but yet you can gamble via nicehash on port 3334 Smiley

36  Local / Économie et spéculation / Re: [BTC] Le bitcoin devrait remonter.... ou peut être redescendre on: July 04, 2022, 10:15:43 AM

do not read, trust related
37  Bitcoin / Pools / [soloblocks.io] Tutorial : Verify the jobs on a solo mining pool on: July 04, 2022, 09:31:26 AM
Recently, I received complaints about trust on my mining pool https://soloblocks.io

Some users don't know how to verify if you are mining on a legit work or if I a scamming you, so I decided to spend a few times about this issue. You can apply this method of retro engineering on whatever mining pool you want.

So here is a method to verify the jobs, to get the current payouts amounts and the current payouts address of the differents outputs of the current Block, from the jobs I send you via the pool (via netcat so)

Here is the tutorial : https://bitcointalk.org/index.php?topic=5397166.msg60503248#msg60503248

I need help to implement a standalone application that does the extraction for me (don't have time, I have a side job Smiley )

As always : don't hesitate to mine on https://soloblocks.io.

My goal is to stay online for the next 50 years
38  Bitcoin / Pools / Re: [ANN] Soloblocks.io - 0.4% SOLO Mining Pool on: July 03, 2022, 11:44:58 PM
UPDATE

To gain trust and approval for https://soloblocks.io of the bitcoin community and particularly on Bitcoin talk, I present you :

A method to verify the jobs, to get the current payouts amounts and the current payouts address of the differents outputs of the current Block, from the jobs I send you via the pool.

It requires to do a little bit of retro engineering, patience and a running bitcoin core Smiley

It works on every mining pool as soon as you know what is the Extradata (method to get it via GenTX1 is longer, and reverse extraction of outputs is possible though, but I need to maximise confidence).

You can see from netcat what you are mining Smiley

I spent few minutes to give you this scheme to verify the data I broadcast :

- Step 0 : Get a random job via netcat Smiley



 - Get the mining.notify to get the GenTX2, by pasting this on your terminal (don't hesitate to change your address), this is how your miner connects to the mining pool Smiley

Code:
» nc soloblocks.io 3333
{"id": 1, "method": "mining.subscribe", "params": []}
{"id": 2, "params": ["bc1qtfl2u4l3gqdzvr45v50dfvefaffzft0zfnhcan.worker", "password"],  "method": "mining.authorize"}

- You get
Code:
{"id":1,"result":[[["mining.notify","bc247797"]],"72f7cdb3",8],"error":null}
{"id":2,"result":true,"error":null}
{"method":"mining.set_difficulty","params":[65535],"id":2}
{"method":"mining.notify","params":["6","2baedb2023a7ed2c1386a571fb3f3fe8068f5f69000042fe0000000000000000","01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff220353580b04a31cc26208","0f536f6c6f626c6f636b732e696f203100000000030000000000000000266a24aa21a9ed36fb8aa37b0515f8589481c4d08568cea1d1b156dd74b7aa09dc51823d7c494ade5e2725000000001600145a7eae57f1401a260eb4651ed4b329ea5224ade2c23226000000000017a914d3bc8e113a19c690c23d0436a54a9f54bd3a9bcc8700000000",["a2e03c00888ff04fc5e798a2bbbe85524b1d4cdd8f2583a65a6affa598375976","66d85a62d08f00f4d98fbaee0451d39110a990b9704f5de1a4f3c5401ea34a92","fba424b04036a455c98acaa6b99bd07a06299720c760d3992f0326c6abea7e06","017662772c7a47998336ddc859fc9dae6036b14a33b1d1e23330478b7e734f44","bdba777179d6b68fc8d1bda510212fc0f17332626d934dec61f598e988012b7e","dc58f53aeb93cb88c2c5bbb15aae73ee855be07f1dbe217b5017a86db13bb049","7de31d3ee3fc6ef976e87754d7a7041bcff161efb5e884a6e3e3b7a8b4bcabe8","24ab3fe6557e60152c24935d0edac01326b653f879d831045c162fcd63a130cd"],"20000000","170984cc","62c21ca1",true],"id":3}

- GenTX2 is the 4'th param.
Code:
 0f536f6c6f626c6f636b732e696f203100000000030000000000000000266a24aa21a9ed36fb8aa37b0515f8589481c4d08568cea1d1b156dd74b7aa09dc51823d7c494ade5e2725000000001600145a7eae57f1401a260eb4651ed4b329ea5224ade2c23226000000000017a914d3bc8e113a19c690c23d0436a54a9f54bd3a9bcc8700000000


- Step 1 : Extradata


 - Extradata on soloblocks is "Soloblocks.io 1" for port 3333 and "Soloblocks.io 2" for port 3334. With that you can verify that the job I broadcast is to mine to Soloblocks.io
Code:
txExtradataByteFromString [15 83 111 108 111 98 108 111 99 107 115 46 105 111 32 49]
txExtradataHex 0f536f6c6f626c6f636b732e696f2031 (verify on http://www.unit-conversion.info/texttools/hexadecimal/)

- you can see that you are mining on SoloBlocks.io on port 3333. Smiley


- Step 2 : the output transaction

- Split GenTX2 from "0f536f6c6f626c6f636b732e696f2031", you have the outputTransaction and sequences of "00000000". Last 8 chars is the txLockTime, set by default to 0. (txExtradata+txInSequence(00000000)+outputTransactions+txLockTime(00000000))

- The output transaction of the job is "030000000000000000266a24aa21a9ed36fb8aa37b0515f8589481c4d08568cea1d1b156dd74b7a a09dc51823d7c494ade5e2725000000001600145a7eae57f1401a260eb4651ed4b329ea5224ade2 c23226000000000017a914d3bc8e113a19c690c23d0436a54a9f54bd3a9bcc87"

-"03" is the number of outputs

- Step 3 : the Default Commitment

- First output is the Default Commitment.
- "0000000000000000266a24aa21a9ed36fb8aa37b0515f8589481c4d08568cea1d1b156dd74b7aa0 9dc51823d7c494a" is the DefaultSegwitCommitment
- "0000000000000000" is util.PackInt64LE(0)
- 26 is the varIntBuffer of the length of DefaultSegwitCommitmentBytes
- "6a24aa21a9ed36fb8aa37b0515f8589481c4d08568cea1d1b156dd74b7aa09dc51823d7c494a" is the hex of the DefaultSegwit Commitment

- Step 4 : the Miners Address and miners Payout
- Second Output is the miners address (your payout)
- "de5e272500000000" is the PackInt64LE of the miners reward (99.6% of the coinbase value, value in input is in satoshi)
- "16" is the hex length of the miner's transaction script (22)
- the next 22*2 chars are 00145a7eae57f1401a260eb4651ed4b329ea5224ade2 (miners script)


You can then decode the Script on your bitcoin core like that :  
Code:
curl -d '{"jsonrpc":"2.0","id":"1","method": "decodescript","params":["00145a7eae57f1401a260eb4651ed4b329ea5224ade2"]}'  -s localhost:8332

it replies
Code:
{
  "result": {
    "asm": "0 5a7eae57f1401a260eb4651ed4b329ea5224ade2",
    "address": "bc1qtfl2u4l3gqdzvr45v50dfvefaffzft0zfnhcan",
    "type": "witness_v0_keyhash",
    "p2sh": "3Lbwmabrxu9YDjbGwBB3RvAGD9nHEXbN3n"
  },
  "error": null,
  "id": "1"
}


Here you have your payout address, your payout amount, and you have a solution for this trust problem Wink

- Step 5 : the pool's Address and pool's Payout
- repeat the Step4 over the rest of the outputTransaction Smiley
- you can see that i'm taking 0.4% fees.



So please, don't ask again about trust on my platform, you have now a method to verify the jobs, the payouts and the payout address Smiley

Have a nice day friends Cheesy

Crosspost : https://bitcointalk.org/index.php?topic=5405106.msg60505734#msg60505734
39  Bitcoin / Pools / Re: [ANN] Soloblocks.io - 0.4% SOLO Mining Pool on: July 03, 2022, 08:37:00 PM
I see no reason to mine here, and the basic point is trust.
Better think of putting a deposite of 6.25 BTC to an highly trusted escrow here in the forum, to cover a possible exit scam.
* a discusion we had years ago, and ck came up with this idea.
With that you may convince some miners to work here.


That's because you don't know well how Mining works. I understand that trust is an issue, that's why I give you a method to verify the jobs you receive at any moment :

https://bitcointalk.org/index.php?topic=5397166.msg60503248#msg60503248

i've taken the time to make you a provable method to verify at every moment the jobs from the pool, the payout and the payout address

You can then verify that i'm not a scammer, that the jobs I send you are fair and legit.
40  Bitcoin / Pools / Re: [ANN] Soloblocks.io - 0.4% SOLO Mining Pool on: July 01, 2022, 01:59:39 PM
Update : added Testnet blocks :

https://live.blockcypher.com/btc-testnet/address/2Msgj1WJpHzBmQU553Y3p6ib2h6dQPWEYFP/
Pages: « 1 [2] 3 4 5 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!