Bitcoin Forum
November 08, 2024, 07:01:03 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 »
  Print  
Author Topic: FPGA development board "Icarus" - DisContinued/ important announcement  (Read 207281 times)
ngzhang (OP)
Hero Member
*****
Offline Offline

Activity: 592
Merit: 501


We will stand and fight.


View Profile
February 02, 2012, 07:22:24 PM
 #361

Another question about the communication specs: How do the boards behave after they found a solution? Do they keep working on the current work till they get new work, possibly resulting in 3 or more solutions per work unit?

present configuration is the FPGA will stop working when it find a valid nonce. but the other FPGA in chain will continue working (because it didn't know what is happened on the other FPGA).
this idea is to keep a simple event. so software miner should push a work to FPGA immediately when received a valid nonce.

ADD:

about the detection. there is a simple way to impalement, with out any RTL change.
just push a 512bits dummy work package to the COM port, fot example:
 
Code:
['data'] = "0000000120c8222d0497a7ab44a1a2c7bf39de941c9970b1dc7cdc400000079700000000e88aabe1f353238c668d8a4df9318e614c10c474f8cdf8bc5f6397b946c33d7c4e7242c31a098ea500000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000"
['midstate'] =  "33c5bf5751ec7f7e056443b5aee3800331432c83f404d9de38b94ecbf907b92d"


the boards will return "063c5e01" in a short time.

Hehe I found this in our miner source, too. Helped me a lot to get the communication working Smiley.

About the stop-searching-after-a-nonce-is-found thing, is there some specific reason for this behaviour or could this be changed? I think it would simplify miner developement if it kept searching, because currently a new getwork request has to be made after a nonce is found. Laggy internet connections make the FPGAs idle more and lead to lower hash rates (I think that's why my boards currently only make about 350 mhash each).
If the FPGAs kept searching, a simple getwork-thread could feed the FPGAs new work every about <11 seconds, minimizing the negative effects of a bad connection.
I think for now I'm going to implement some queueing mechanism as a workaround (couldn't flash a different bitstream anyways because I don't yet have a platform cable).


i know what you mean. and i just solve this problem by a work queue function.

 my suggest is DO NOT CHANGE THE BITSTEAM, because a near 200M speed bitsteam is very hard to implement. or you can try to synthesize the code.
Brunic
Hero Member
*****
Offline Offline

Activity: 632
Merit: 500



View Profile
February 02, 2012, 10:24:23 PM
 #362

Hi there, I have some questions:

-In the first post, I can see this:
"$: 569 (1) / 469$ (multiple of 30)"
so 1 board is 569$ and 30 boards is 469$ each, is that correct? If 30 boards is 469$ each, I might be interested in buying 30 Icarus boards.

-Also, to use them, you only need the boards and a PC where you connect the boards with USB. So, in theory, the more there is USB ports, the more you can plug into that PC, correct?

-Does the PC have some requirements on their specs? If I use a basic Sempron 130 with 1 Gb of RAM, is it going to be ok? I also suppose that using Linux on that PC is ok?

-You ship to Canada? What's the shipping cost?

-Let's say that in theory, I have a motherboard with 8 USB ports and 4 PCI-Express slots. So, always in theory, I could plug 8 FGPA board and 4 GPU in that motherboard and they could all mine together, correct?

Thanks for your answers. This project seems to have potential  Smiley
[Tycho]
Hero Member
*****
Offline Offline

Activity: 742
Merit: 500



View Profile WWW
February 02, 2012, 10:54:10 PM
 #363

-Let's say that in theory, I have a motherboard with 8 USB ports and 4 PCI-Express slots. So, always in theory, I could plug 8 FGPA board and 4 GPU in that motherboard and they could all mine together, correct?
You can use USB hubs and additional USB controllers too.

Welcome to my bitcoin mining pool: https://deepbit.net - Both payment schemes (including PPS), instant payout, no invalid blocks !
ICBIT Trading platform : USD/BTC futures trading, Bitcoin difficulty futures (NEW!). Third year in bitcoin business.
andrehorta
Legendary
*
Offline Offline

Activity: 1261
Merit: 1000


View Profile WWW
February 02, 2012, 11:04:40 PM
 #364

Hi!

I´m from Brazil and I would like to buy the FPGA to mine. Can you send to Brazil?

Thank you!
BkkCoins
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1009


firstbits:1MinerQ


View Profile WWW
February 03, 2012, 01:04:42 AM
 #365

Code:
[quote author=ngzhang link=topic=51371.msg727871#msg727871 date=1328204144]
present configuration is the FPGA will stop working when it find a valid nonce. but the other FPGA in chain will continue working (because it didn't know what is happened on the other FPGA).
this idea is to keep a simple event. so software miner should push a work to FPGA immediately when received a valid nonce.

Does this behaviour also mean that if the second FPGA goes dead/locks up the first one will continue working? I'd assume if the first one goes dead it prevents comm to the 2nd one but I'm curious about independence when the first is still reachable but the second doesn't respond any more?

ngzhang (OP)
Hero Member
*****
Offline Offline

Activity: 592
Merit: 501


We will stand and fight.


View Profile
February 03, 2012, 05:17:18 AM
 #366

Hi there, I have some questions:

-In the first post, I can see this:
"$: 569 (1) / 469$ (multiple of 30)"
so 1 board is 569$ and 30 boards is 469$ each, is that correct? If 30 boards is 469$ each, I might be interested in buying 30 Icarus boards.

-Also, to use them, you only need the boards and a PC where you connect the boards with USB. So, in theory, the more there is USB ports, the more you can plug into that PC, correct?

-Does the PC have some requirements on their specs? If I use a basic Sempron 130 with 1 Gb of RAM, is it going to be ok? I also suppose that using Linux on that PC is ok?

-You ship to Canada? What's the shipping cost?

-Let's say that in theory, I have a motherboard with 8 USB ports and 4 PCI-Express slots. So, always in theory, I could plug 8 FGPA board and 4 GPU in that motherboard and they could all mine together, correct?

Thanks for your answers. This project seems to have potential  Smiley

yes, if your amount is larger than 30, the unit price is 469$, if you do not need the adapter (recommend for bulk orders), the unit price is 464$. save you 150$ to get a good power.

there is nearly no requirements for the PC. even somebody is working on put the miner into an ARM based platform. a PC can run windowsXP or linux is ok.

about the shipment cost, if using EMS, a 15KG package cost is around 300$.

the USB port can expand with HUBs. so 100+ FPGA boards may operate on one PC.



Hi!

I´m from Brazil and I would like to buy the FPGA to mine. Can you send to Brazil?

Thank you!

certainly , some Brazilian is already my customers.

Code:
[quote author=ngzhang link=topic=51371.msg727871#msg727871 date=1328204144]
present configuration is the FPGA will stop working when it find a valid nonce. but the other FPGA in chain will continue working (because it didn't know what is happened on the other FPGA).
this idea is to keep a simple event. so software miner should push a work to FPGA immediately when received a valid nonce.

Does this behaviour also mean that if the second FPGA goes dead/locks up the first one will continue working? I'd assume if the first one goes dead it prevents comm to the 2nd one but I'm curious about independence when the first is still reachable but the second doesn't respond any more?

i designed the logic inside the FPGA as a robust way. this event may only happen when the FPGA is broken. and NEVER happened until now.
allinvain
Legendary
*
Offline Offline

Activity: 3080
Merit: 1083



View Profile WWW
February 03, 2012, 06:36:46 AM
 #367

Quote
this event may only happen when the FPGA is broken. and NEVER happened until now.

Just to clarify before someone panics, I'm sure ngzhang meant to say that "it has NEVER happened yet" or hasn't happened yet. Grammar Syntax Nazi on the attack Wink lol


ngzhang (OP)
Hero Member
*****
Offline Offline

Activity: 592
Merit: 501


We will stand and fight.


View Profile
February 03, 2012, 06:53:13 AM
 #368

Quote
this event may only happen when the FPGA is broken. and NEVER happened until now.

Just to clarify before someone panics, I'm sure ngzhang meant to say that "it has NEVER happened yet" or hasn't happened yet. Grammar Syntax Nazi on the attack Wink lol




OK。

it has NEVER happened yet  Cheesy Cheesy
hardpick
Sr. Member
****
Offline Offline

Activity: 265
Merit: 250


Football President


View Profile WWW
February 03, 2012, 08:16:12 AM
 #369

how important is ping time?
I am getting 360 mh/s from 2nd batch icarus on deepbit which has a ping time of 410 ms
(my isp ping time is 11ms -- have adsl2 at 12.34 mbps/ 0.83 mbps -- I live in sydney australia)
I have tested other pools
50btc.com-----382ms
A1BitcoinPool.com-----359ms
asspennypool.com-----308ms
BitClockers.com-----233ms
bitcoin.cz-----387ms
bitcoins.lc-----388ms
bithasher.com-----277ms
bitparking.com-----247ms
bitpenny.com-----247ms
btcguild.com-----243ms
btcmine.com-----275ms
btcserv.net-----413ms
deepbit.net-----410ms
ecki.net.-----361ms
eclipsemc.com-----239ms
eligius.st-----412ms
mitminter.com-----395ms
mkalinin.ru-----347ms
mtred.com-----279ms
NMCBIT.COM-----271ms
ozco.in-----234ms
simplecoin.us-----217ms
Triplemining.com-----396ms
BkkCoins
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1009


firstbits:1MinerQ


View Profile WWW
February 03, 2012, 08:49:37 AM
 #370

Quote
this event may only happen when the FPGA is broken. and NEVER happened until now.

Just to clarify before someone panics, I'm sure ngzhang meant to say that "it has NEVER happened yet" or hasn't happened yet. Grammar Syntax Nazi on the attack Wink lol




OK。

it has NEVER happened yet  Cheesy Cheesy
I'm sure it hasn't yet. My question was more a what if scenario aimed at understanding the dependence between the FPGAs. If one were to be damaged/abused how would the other one be affected. If one gets sick/dead does that render the other also inoperable? I'm not saying anything is wrong but it's good to understand how they relate to each other. From looking at the code it seems like the first dead would knock out the second, but not the other way around; unless I'm wrong about how the second communicates via the first.

eckmar
Legendary
*
Offline Offline

Activity: 1878
Merit: 1038


Telegram: https://t.me/eckmar


View Profile
February 03, 2012, 10:13:33 AM
Last edit: February 03, 2012, 11:46:06 AM by eckmar
 #371

OF
Hello Hardpick,

how important is ping time?
I am getting 360 mh/s from 2nd batch icarus on deepbit which has a ping time of 410 ms
(my isp ping time is 11ms -- have adsl2 at 12.34 mbps/ 0.83 mbps -- I live in sydney australia)
I have tested other pools
...
ecki.net.-----361ms
...

361 ms from Australia to Thailand? This is very bad... Sad
Which Internet Provider do you use? Telstra?
I have less than 200ms to my customers in Sydney from here (Thailand)... so it is the same distance!

Antwort von 203.37.115.162: Bytes=32 Zeit=189ms TTL=236
Antwort von 203.37.115.162: Bytes=32 Zeit=190ms TTL=236
Antwort von 203.37.115.162: Bytes=32 Zeit=188ms TTL=236
Antwort von 203.37.115.162: Bytes=32 Zeit=184ms TTL=236

Ping-Statistik für 203.37.115.162:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
    (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 184ms, Maximum = 190ms, Mittelwert = 187ms


Could you PM me your traceroute to miner.ecki.net please?
Note: NOT ecki.net, because this will be in Germany and not Thailand where the pool server is located!

The ping time is important, but the variance is also very important.
The difference between Minimum, Maximum and Average should be as little as possible!
But most important for mining are the number of packet drops!

So just ping the target 10000 times and have a look about the % of packet losses.
Ping is important, but it is not all...
If you have a high number of packet drops to your current pool, then choose another one and it will increase your current hash rate of 360 MH/s!

For more answers or information about network questions please PM me, this is off topic here in this thread (I assume)... even you are using an Icarus board.

Cu,
 Ecki
ngzhang (OP)
Hero Member
*****
Offline Offline

Activity: 592
Merit: 501


We will stand and fight.


View Profile
February 03, 2012, 11:06:05 AM
 #372

let's discuss about the pool selection.

in brief, if you have a large ping, please use the queue version of the miner software, but it will cause a higher stale rate.  about 1-2%. but the FPGA could run at a full speed.
but if your connection is unstable, it has already been found that both miner software sometimes get stuck.

the both simple and queue miner will not continue or fix. we will change to a more common use miner, like CGminer or some other stuff who want to support icarus. there are already some people working on this.


Quote
I'm sure it hasn't yet. My question was more a what if scenario aimed at understanding the dependence between the FPGAs. If one were to be damaged/abused how would the other one be affected. If one gets sick/dead does that render the other also inoperable? I'm not saying anything is wrong but it's good to understand how they relate to each other. From looking at the code it seems like the first dead would knock out the second, but not the other way around; unless I'm wrong about how the second communicates via the first.

hmmmm, the FPGA simply act as a wire. pass the host data to the next one, and store-and-forward data to the host.
hardpick
Sr. Member
****
Offline Offline

Activity: 265
Merit: 250


Football President


View Profile WWW
February 03, 2012, 09:45:51 PM
 #373

let's discuss about the pool selection.

in brief, if you have a large ping, please use the queue version of the miner software, but it will cause a higher stale rate.  about 1-2%. but the FPGA could run at a full speed.
but if your connection is unstable, it has already been found that both miner software sometimes get stuck.

the both simple and queue miner will not continue or fix. we will change to a more common use miner, like CGminer or some other stuff who want to support icarus. there are already some people working on this.


Quote
I'm sure it hasn't yet. My question was more a what if scenario aimed at understanding the dependence between the FPGAs. If one were to be damaged/abused how would the other one be affected. If one gets sick/dead does that render the other also inoperable? I'm not saying anything is wrong but it's good to understand how they relate to each other. From looking at the code it seems like the first dead would knock out the second, but not the other way around; unless I'm wrong about how the second communicates via the first.

hmmmm, the FPGA simply act as a wire. pass the host data to the next one, and store-and-forward data to the host.


I have changed to queue miner  and now get 374.25 +/- 5.93 MHash/s

I also get "upstream result: False"  about every day and the mining stops  --- I throught it may be my pc -- so I am in process of setting up a new pc to run software/icarus

I will run some traceroutes and ping test and post results and respond to ecki
macbook-air
Sr. Member
****
Offline Offline

Activity: 324
Merit: 260


View Profile WWW
February 03, 2012, 10:02:36 PM
 #374

我想请问一下张博士,这个用人民币买多少钱一个?本人住的离北航不远,运费可以忽略不计的,或者自己去取也行啊?

chungenhung
Legendary
*
Offline Offline

Activity: 1134
Merit: 1005


View Profile
February 03, 2012, 10:12:48 PM
 #375

-Let's say that in theory, I have a motherboard with 8 USB ports and 4 PCI-Express slots. So, always in theory, I could plug 8 FGPA board and 4 GPU in that motherboard and they could all mine together, correct?
You can use USB hubs and additional USB controllers too.
In THEORY, you could have 127 USB devices per port. But again, that is just THEORY.
The speed will be so slow that hashing would probably stop.
hardpick
Sr. Member
****
Offline Offline

Activity: 265
Merit: 250


Football President


View Profile WWW
February 04, 2012, 02:20:55 AM
 #376

OF
Hello Hardpick,

how important is ping time?
I am getting 360 mh/s from 2nd batch icarus on deepbit which has a ping time of 410 ms
(my isp ping time is 11ms -- have adsl2 at 12.34 mbps/ 0.83 mbps -- I live in sydney australia)
I have tested other pools
...
ecki.net.-----361ms
...

361 ms from Australia to Thailand? This is very bad... Sad
Which Internet Provider do you use? Telstra?
I have less than 200ms to my customers in Sydney from here (Thailand)... so it is the same distance!

Antwort von 203.37.115.162: Bytes=32 Zeit=189ms TTL=236
Antwort von 203.37.115.162: Bytes=32 Zeit=190ms TTL=236
Antwort von 203.37.115.162: Bytes=32 Zeit=188ms TTL=236
Antwort von 203.37.115.162: Bytes=32 Zeit=184ms TTL=236

Ping-Statistik für 203.37.115.162:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
    (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 184ms, Maximum = 190ms, Mittelwert = 187ms


Could you PM me your traceroute to miner.ecki.net please?
Note: NOT ecki.net, because this will be in Germany and not Thailand where the pool server is located!

The ping time is important, but the variance is also very important.
The difference between Minimum, Maximum and Average should be as little as possible!
But most important for mining are the number of packet drops!

So just ping the target 10000 times and have a look about the % of packet losses.
Ping is important, but it is not all...
If you have a high number of packet drops to your current pool, then choose another one and it will increase your current hash rate of 360 MH/s!

For more answers or information about network questions please PM me, this is off topic here in this thread (I assume)... even you are using an Icarus board.

Cu,
 Ecki

Hi Ecki
Thanks for the help
I have changed to queued mining and now get 380 mh/sec --
only problem that need to be resolved is miner lockup (I am in process of changing PC - if this does not resolve problem will then try other pools)

I no longer think ping time is a problem unless it is causing the lockup

below is the info

Tracing route to miner.ecki.net [110.77.137.88]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192-168-100-1.tpgi.com.au [192.168.100.1]
  2    <1 ms    <1 ms    <1 ms  donduck.gateway [192.168.0.1]
  3    19 ms    20 ms    19 ms  xx.xx.xx.xxx (hiden by me  ie  my ip)
  4    20 ms    20 ms    20 ms  202.7.173.149
  5    20 ms    19 ms    19 ms  syd-sot-ken-crt2-ge-6-0-0.tpgi.com.au [202.7.171.105]
  6    19 ms    20 ms    19 ms  syd-sot-ken-crt-4-Ten-9-1.tpgi.com.au [203.29.135.157]
  7    20 ms    19 ms    19 ms  syd-sot-ken-crt-4-Ten-9-1.tpgi.com.au [203.29.135.157]
  8   120 ms   120 ms   120 ms  ix-11-1-0-507.tcore2.TV2-Tokyo.as6453.net [116.0.88.21]
  9   188 ms   188 ms   212 ms  if-6-2.tcore1.SVW-Singapore.as6453.net [180.87.12.109]
 10   203 ms   204 ms   204 ms  if-12-0-0.core1.SVQ-Singapore.as6453.net [180.87.36.21]
 11   203 ms   210 ms   216 ms  Vlan1107.icore1.SVQ-Singapore.as6453.net [120.29.214.2]
 12   193 ms   197 ms   194 ms  Vlan563.icore1.SVQ-Singapore.as6453.net [120.29.215.78]
 13   232 ms   232 ms   232 ms  61.19.9.149
 14   217 ms   216 ms   221 ms  61.19.9.29
 15   222 ms   222 ms   222 ms  61.19.9.34
 16   232 ms   232 ms   234 ms  61.19.15.186
 17   217 ms   218 ms   216 ms  110.77.255.38
 18   236 ms   238 ms   236 ms  110.77.252.142
 19   265 ms   281 ms   310 ms  mail2.ecki.net [110.77.137.88]

Trace complete.


ping test below to miner.ecki.net ---- 1000 times

Pinging miner.ecki.net [110.77.137.88] with 32 bytes of data:
Reply from 110.77.137.88: bytes=32 time=372ms TTL=49
Reply from 110.77.137.88: bytes=32 time=290ms TTL=49

Ping statistics for 110.77.137.88:
    Packets: Sent = 1000, Received = 986, Lost = 14 (1% loss),
Approximate round trip times in milli-seconds:
    Minimum = 241ms, Maximum = 566ms, Average = 307ms


ping test to deepbit below 10,000 times


Pinging deepbit.net [46.4.121.118] with 32 bytes of data:
Reply from 46.4.121.118: bytes=32 time=411ms TTL=44
Reply from 46.4.121.118: bytes=32 time=411ms TTL=44

Ping statistics for 46.4.121.118:
    Packets: Sent = 10000, Received = 10000, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 409ms, Maximum = 637ms, Average = 410ms


my intenet provider is tpg.com.au 

regards

Luke
ngzhang (OP)
Hero Member
*****
Offline Offline

Activity: 592
Merit: 501


We will stand and fight.


View Profile
February 04, 2012, 05:44:41 AM
 #377

let's discuss about the pool selection.

in brief, if you have a large ping, please use the queue version of the miner software, but it will cause a higher stale rate.  about 1-2%. but the FPGA could run at a full speed.
but if your connection is unstable, it has already been found that both miner software sometimes get stuck.

the both simple and queue miner will not continue or fix. we will change to a more common use miner, like CGminer or some other stuff who want to support icarus. there are already some people working on this.


Quote
I'm sure it hasn't yet. My question was more a what if scenario aimed at understanding the dependence between the FPGAs. If one were to be damaged/abused how would the other one be affected. If one gets sick/dead does that render the other also inoperable? I'm not saying anything is wrong but it's good to understand how they relate to each other. From looking at the code it seems like the first dead would knock out the second, but not the other way around; unless I'm wrong about how the second communicates via the first.

hmmmm, the FPGA simply act as a wire. pass the host data to the next one, and store-and-forward data to the host.


I have changed to queue miner  and now get 374.25 +/- 5.93 MHash/s

I also get "upstream result: False"  about every day and the mining stops  --- I throught it may be my pc -- so I am in process of setting up a new pc to run software/icarus

I will run some traceroutes and ping test and post results and respond to ecki

the  "upstream result: False"  means stale, or just a wrong data.
miner stuck is a known issue, by my first plan, i don't want to do any fix on this miner, because i want to change to another common use miner software.
but looks like this progress needs some time.

我想请问一下张博士,这个用人民币买多少钱一个?本人住的离北航不远,运费可以忽略不计的,或者自己去取也行啊?

没有现货哦,目前订货状态,小批量大约3周。价格是3650¥。
hardpick
Sr. Member
****
Offline Offline

Activity: 265
Merit: 250


Football President


View Profile WWW
February 04, 2012, 05:55:44 AM
 #378

"the  "upstream result: False"  means stale, or just a wrong data.
miner stuck is a known issue, by my first plan, i don't want to do any fix on this miner, because i want to change to another common use miner software.
but looks like this progress needs some time.
"

Thanks for the update

since the miner stuck is a known issue -- there is no point in me changing pc or trying another mining pool

i will wait till you have a fix

regards

Luke
ngzhang (OP)
Hero Member
*****
Offline Offline

Activity: 592
Merit: 501


We will stand and fight.


View Profile
February 04, 2012, 06:10:46 AM
 #379

"the  "upstream result: False"  means stale, or just a wrong data.
miner stuck is a known issue, by my first plan, i don't want to do any fix on this miner, because i want to change to another common use miner software.
but looks like this progress needs some time.
"

Thanks for the update

since the miner stuck is a known issue -- there is no point in me changing pc or trying another mining pool

i will wait till you have a fix

regards

Luke

by my plan, miner software may change in this month. before that, a watchdog timer may add to present miner to solve this problem as a temporary solution.
a experience is , if your pool is stable, the miner stuck may rarely happens.

BkkCoins
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1009


firstbits:1MinerQ


View Profile WWW
February 04, 2012, 06:26:15 AM
 #380

For what it's worth it's been my experience that BTCGuild has been the most stable with the least number of rejects of many pools I've tried (by a wide margin too such that it's even worth the fee). You may want to test pointing your hashing there and see if it works better.

Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 »
  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!