Bitcoin Forum
April 27, 2024, 11:42:09 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 [69] 70 71 72 73 74 75 76 »
  Print  
Author Topic: [ANN] Datacoin - Censorship-Free Data Storage  (Read 66643 times)
killerkeemstar
Newbie
*
Offline Offline

Activity: 31
Merit: 0


View Profile
February 16, 2021, 06:58:42 AM
 #1361

Is the mining difficulty still low on this ?
1714218129
Hero Member
*
Offline Offline

Posts: 1714218129

View Profile Personal Message (Offline)

Ignore
1714218129
Reply with quote  #2

1714218129
Report to moderator
1714218129
Hero Member
*
Offline Offline

Posts: 1714218129

View Profile Personal Message (Offline)

Ignore
1714218129
Reply with quote  #2

1714218129
Report to moderator
Bitcoin mining is now a specialized and very risky industry, just like gold mining. Amateur miners are unlikely to make much money, and may even lose money. Bitcoin is much more than just mining, though!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714218129
Hero Member
*
Offline Offline

Posts: 1714218129

View Profile Personal Message (Offline)

Ignore
1714218129
Reply with quote  #2

1714218129
Report to moderator
1714218129
Hero Member
*
Offline Offline

Posts: 1714218129

View Profile Personal Message (Offline)

Ignore
1714218129
Reply with quote  #2

1714218129
Report to moderator
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
February 16, 2021, 10:39:58 AM
 #1362

Is the mining difficulty still low on this ?

Yes.

You can solo-mine directly from the wallet or with eXtremal-iK7's solo-mining GPU miner xpmminer.

For pool mining, use eXtremal-ik7's GPU pool miner xpmclient. coinsforall runs a DTC mining pool 

Cheers

Graham
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
February 16, 2021, 11:24:34 AM
 #1363

FWIW: Downloadable current Datacoin blocks and chainstate: https://minkiz.co/noodlings/dtc/dtc-blocks-chainstate.tar.xz (2.2Gb)

Cheers

Graham
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
February 16, 2021, 12:59:21 PM
 #1364

FWIW, state-of-play of the current Datacoin network (* = listening node)

Code:
144.76.118.44              /Datoshi:0.16.3/ * Germany
144.76.64.49               /Datoshi:0.16.3/   Germany
2a01:4f8:191:7330::2       /Datoshi:0.16.3/   Germany
2a01:4f8:192:7325::2       /Datoshi:0.16.3/ * Germany
51.148.146.204             /Datoshi:0.16.3/   United Kingdom
82.37.149.147              /Datoshi:0.16.3/ * United Kingdom
89.201.185.195             /Datoshi:0.16.3/   Croatia
140.186.218.230            /DatacoinCore.Veter:0.15.99.8/   United States
31.131.65.221              /DatacoinCore.Veter:0.15.99.8/   Russian Federation
40.87.106.229              /DatacoinCore.Veter:0.15.99.8/   United States
45.33.238.99               /DatacoinCore.Veter:0.15.99.8/ * United States
85.19.25.38                /Datacoin:0.8.6/Datacoin:0.1.2(v0.8.6.0-dirty)/  Norway
89.73.143.76               /Satoshi:0.8.5/ * Poland
95.217.78.168              /Satoshi:0.8.5/ * Finland
2a01:4f9:4a:1e17::2        /Satoshi:0.8.5/   Germany
151.80.96.105              /Satoshi:0.8.3/ * France (coinsforall.io)

Cheers

Graham
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
February 18, 2021, 08:45:55 PM
 #1365

“A blog on the Datacoin blockchain”



If you're using the latest Datacoin 0.16.3 client from my repos (self-compilers, don't use the zip file, clone the repos and compile from master), then you can read a blog post about making blog posts on the Datacoin blockchain



Cheers

Graham
extro1
Jr. Member
*
Offline Offline

Activity: 48
Merit: 4


View Profile
March 02, 2021, 07:43:47 AM
 #1366

Hi Graham

Very interesting.  Would it also work for Javascript programs so that they would be run with a browser?

-extro
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
March 02, 2021, 08:52:15 AM
 #1367

Very interesting.  Would it also work for Javascript programs so that they would be run with a browser?
I don't see why not, the blog post uses Javascript resources stored on the Datacoin blockchain, e.g. Jquery 3.5.1 - http://localhost:11777/rest/txdata/b82f0ccc491c50d16859cd2680239a264c0d79a024c86d7d8801ae82371f8d84.js

Cheers

Graham
extro1
Jr. Member
*
Offline Offline

Activity: 48
Merit: 4


View Profile
March 06, 2021, 12:35:41 AM
Last edit: March 08, 2021, 07:20:43 AM by extro1
 #1368

Righto.  It works beautifully.

In fact this is working a little bit like Apertus, but in the client itself.

With the Datastore function are we effectively creating Non-fungible tokens? 

-extro
balko14
Member
**
Offline Offline

Activity: 114
Merit: 10


View Profile
March 10, 2021, 02:46:20 PM
 #1369

Tell me how to start mining DTC on GPU 280x in solo
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
March 10, 2021, 03:23:54 PM
 #1370

Tell me how to start mining DTC on GPU 280x in solo

Try coinsforall.io when it is back up (https://bitcointalk.org/index.php?topic=831708.0)

It's probably cheaper to buy at 2 Satoshi on freiexchange but you won't to hear that Smiley

Cheers

Graham
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
March 10, 2021, 10:45:58 PM
 #1371

Looks like eXtremal may have closed the Datacoin pool.

https://bitcointalk.org/index.php?topic=831708.msg56535610#msg56535610

Cheers

Graham
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
March 10, 2021, 10:52:26 PM
 #1372

In fact this is working a little bit like Apertus, but in the client itself.
It's limited to rendering HTML pages. Didn't want to tread on toes.

With the Datastore function are we effectively creating Non-fungible tokens? 
Depends on what you inscribe and there's no direct means of asserting ownership nor is there any kind of ownership transfer mechanism. So yes but only notionally.

Cheers

Graham
minerja
Sr. Member
****
Offline Offline

Activity: 1248
Merit: 297


View Profile
March 11, 2021, 08:43:56 AM
 #1373

Good day Graham,

I wonder if you could help me out please...

I run virtually every version of Datacoin wallet, across both windows and Linux (with lots of past help from yourself)
Until recently i have had zero issues sending coins from wallet to wallet, and to Frieexchange, however, in the last couple of weeks i have lots about 30,000 DTC in various transfers...

This wallet for example i mine to and send 50% to other wallets and 50% to Freiexchange. Its block height tallys up with the explorer (https://www2.bytestamp.net/c/block) but the last 4 deposits have never got to either another wallet or Frieexchange.

Status: 0/unconfirmed
Date: 10/03/2021 02:22
To: FreiExchange xxxxxxxxxxxxxxxxxxxxxxx
Debit: -3282.0091363 DTC
Transaction fee: -0.15 DTC
Net amount: -3282.1591363 DTC
Transaction ID: 8b077e4eb862f7ee11ee14f2052430ad1f82b1831ec8b57f652c5cd35932fd88

failed

yet
Status: 28358 confirmations
Date: 18/02/2021 02:10
To: FreiExchange xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Debit: -1000.00 DTC
Transaction fee: -0.05 DTC
Net amount: -1000.05 DTC
Transaction ID: e4c3a0539dabd94b5c8e6a25c0f108328c9c00c43e45c487fea38754acb46d97

worked.

I dont understand the bytest explorer at all, i like the chainz.cryptoid.info one where i can check block height, and check peers....

Any ideas please?
Does DTC have a seeed node so i can try and ensure i am on the right chain?
I can't afford to keep losing chunks of coin.




gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
March 11, 2021, 09:44:52 AM
 #1374

in the last couple of weeks i have lots about 30,000 DTC in various transfers...

Status: 0/unconfirmed
You may well not have lost the coins if the transactions haven't been broadcast and confirmed.

Backup your wallet, then close the client and restart it with the options -rescan -zapwallettxes=2

i like the chainz.cryptoid.info one where i can check block height, and check peers....
No-one renewed the subscription, so they removed the service.

Cheers

Graham
sampei7777
Member
**
Offline Offline

Activity: 92
Merit: 18


View Profile WWW
March 11, 2021, 02:59:17 PM
 #1375


-cut-

This wallet for example i mine to and send 50% to other wallets and 50% to Freiexchange. Its block height tallys up with the explorer (https://www2.bytestamp.net/c/block) but the last 4 deposits have never got to either another wallet or Frieexchange.

Status: 0/unconfirmed
Date: 10/03/2021 02:22
To: FreiExchange xxxxxxxxxxxxxxxxxxxxxxx
Debit: -3282.0091363 DTC
Transaction fee: -0.15 DTC
Net amount: -3282.1591363 DTC
Transaction ID: 8b077e4eb862f7ee11ee14f2052430ad1f82b1831ec8b57f652c5cd35932fd88

failed

yet
Status: 28358 confirmations
Date: 18/02/2021 02:10
To: FreiExchange xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Debit: -1000.00 DTC
Transaction fee: -0.05 DTC
Net amount: -1000.05 DTC
Transaction ID: e4c3a0539dabd94b5c8e6a25c0f108328c9c00c43e45c487fea38754acb46d97

worked.


Hello,

please note that https://www2.bytestamp.net/c/block is NOT a Datacoin block explorer, but a Bitcoin one.

Datacoin block explorer is at  https://www2.bytestamp.net/blocks/index

That said, if you search on bytestamp (https://www2.bytestamp.net/blocks/qutx) for the transaction id

 8b077e4eb862f7ee11ee14f2052430ad1f82b1831ec8b57f652c5cd35932fd88

you can see that there is no such tx in the blockchain.

This may suggests that your transaction was never broadcasted to blockchain. You can see this with the command getrawmempool.

You can also use new ByteStamp interface at https://www.bytestamp.net/timestamp-status-overview-and-archive/ selecting the Blockchain radius button and paste the TX ID where it says "Type to search"

The Tx ID e4c3a0539dabd94b5c8e6a25c0f108328c9c00c43e45c487fea38754acb46d97 instead was confirmed in block #3844696  as you can see here https://www2.bytestamp.net/blocks/qblo/it/3844696

But there is something strange today in Datacoin blockchain.

If you go to block explorer

https://www2.bytestamp.net/blocks/index

and put

3873052

as starting block height, you can see that the blockchain was stopped for almost 4 hours.

Block # 3873050 came 4 hours after block # 3873049.

Maybe your transaction    8b077e4eb862f7ee11ee14f2052430ad1f82b1831ec8b57f652c5cd35932fd88 was "fallen" in this hole of 4 hours.

Also I noticed that coinsforall had dropped Datacoin support and dtc.graymines.net is mining.

But... if you go to

https://dtc.graymines.net/index.php?id=blocks

you can see that block # 3873054 was found by the address:

dc1q94pvtll03nsfrgn9felgtnzv98836huzk2nddp

That is not a legacy address but a segwit one.

So? Have we switched to Segwit?

Grahams?


Thanks

ByteStamp
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
March 11, 2021, 07:34:55 PM
 #1376

That said, if you search on bytestamp (https://www2.bytestamp.net/blocks/qutx) for the transaction id

 8b077e4eb862f7ee11ee14f2052430ad1f82b1831ec8b57f652c5cd35932fd88

you can see that there is no such tx in the blockchain.

This may suggests that your transaction was never broadcasted to blockchain. You can see this with the command getrawmempool.
That is what is implied by the “0/unconfirmed” status. The 0 is "nodes to which this tx has been broadcast". I've had this happen - in the 0.16.3 client there's an option "Abandon Transaction" in the Transactions tab pop-up dialog. I've found that I needed to -rescan -zapwallettxes=2 in order to clear these failed txes from the wallet. In principle, if they're in the mempool, they will likely get sent eventually. Bitcoin 0.16.3 has a fee-replacement scheme that you can use to bump up the fee to that it is more attractive to miners - but that's a feature of the Bitcoin network and unlikely to be of much use in a Datacoin context.

But... if you go to

https://dtc.graymines.net/index.php?id=blocks

you can see that block # 3873054 was found by the address:

dc1q94pvtll03nsfrgn9felgtnzv98836huzk2nddp

That is not a legacy address but a segwit one.

So? Have we switched to Segwit?

Grahams?
No, it's possible that someone who isn't familiar with the new extended keys doesn't know to use addresstype=legacy in the config file.

dig dtc.graymines.net resolves to 89.73.143.76 - which is reported by getpeerinfo to be “/Satoshi:0.8.5/”. I have just checked an 0.8.6 client (after some struggles to get it to compile under Ubuntu 0.18, see below) and it reports that address as invalid, so I doubt that graymines was able to send that reward.

Not sure what's happening with the network, my remote server reports the following clients seen atm:

Quote
123.125.148.46:4777         - /Satoshi:0.8.3/
102.165.224.64:61137        - /Satoshi:0.8.3/

89.73.143.76:4777           - /Satoshi:0.8.5/
95.217.78.168:35254         - /Satoshi:0.8.5/
[2a01:4f9:4a:1e17::2]:46230 - /Satoshi:0.8.5/

85.19.25.38:6390            - /Datacoin:0.8.6/Datacoin:0.1.2(v0.8.6.0-dirty)/
150.143.207.111:53560       - /Satoshi:0.8.6/Datacoin:0.1.2(v0.1.2.0dtc-hp14-gunk-beta)/

140.186.218.230:50890       - /DatacoinCore.Veter:0.15.99.8/
40.87.106.229:62839         - /DatacoinCore.Veter:0.15.99.8/
31.131.65.221:60853         - /DatacoinCore.Veter:0.15.99.8/
150.143.207.111:61269       - /DatacoinCore.Veter:0.15.99.8/

45.33.238.99:33943          - /Datoshi:0.16.3/
108.160.136.247:51398       - /Datoshi:0.16.3/
79.114.44.38:49627          - /Datoshi:0.16.3/

51.148.146.204:56982        - /Datoshi:0.16.3/
51.148.146.204:59944        - /Datoshi:0.16.3/
51.148.146.204:34232        - /Datoshi:0.16.3/
51.148.146.204:34234        - /Datoshi:0.16.3/

45.63.115.238               - ""

As regards switching to segwit ...

Given that the 0.16.3 client retains the versionbits code required to effect the transition via soft-fork, one possible roadmap to segwit is:

1. After a majority of users have upgraded to the 0.16.3 client ...
2. At some widely-advertised point, the versionbits code is enabled to create a specific window of time
3. Users then download and use the new versionbits-enabled client, signalling their willingness to accept the change to segwit
4. When the window of time expires, assuming the majority of users are using the versionbits-enabled client, the change becomes permanent.
5. At some widely-advertised point, the block and transaction versions are bumped, excluding the old clients from the network
6. A majority of users update to this new client.

As far as I can tell, atm there are three Datoshi 0.16.3 client operating (other than the ones I’m running on 51.148.146.204), one somewhere on rdsnet.ro, one on digisoftsrl.it and one on vultr.com and as I haven't actually released the 0.16.3 client (I'm still trying to ensure it is working as expected), any progress towards a network upgrade is likely to be leisurely at best.

Although the existing compiled binaries of the 0.8 clients remain functional, the 0.8 sources are increasingly falling out of scope. They no longer compile successfully with the systems packages of contemporary OS distros, requiring some configuration acrobatics to compile with self-built legacy libraries for openssl and boost.

Cheers

Graham
extro1
Jr. Member
*
Offline Offline

Activity: 48
Merit: 4


View Profile
March 11, 2021, 08:07:19 PM
 #1377

In fact this is working a little bit like Apertus, but in the client itself.
It's limited to rendering HTML pages. Didn't want to tread on toes.

With the Datastore function are we effectively creating Non-fungible tokens? 
Depends on what you inscribe and there's no direct means of asserting ownership nor is there any kind of ownership transfer mechanism. So yes but only notionally.

Cheers

Graham


Apertus is no longer under active development, so I suppose it would be fine to interpret .js files, so that they could be run straight off the blockchain.
I thought ownership was a matter of signing a transaction with the Datacoin client, which should be possible in 0.16.

-extro
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
March 11, 2021, 08:16:20 PM
 #1378

Looks like eXtremal may have closed the Datacoin pool.
https://bitcointalk.org/index.php?topic=831708.msg56535610#msg56535610
Still down and no response to my post on the above thread.

Network hash rate has crashed somewhat which is a shame but ...

As sampei7777 observes, the dtc.graymines.net pool is still mining. Go to https://dtc.graymines.net/index.php?id=start for downloadable Windows binaries of the GPU xpmclient poolminer.
Quote
Miners:
version 10.2 beta, ~260 CPD on GFX 1080.
version 10.1 beta, ~240 CPD on GFX 1080.
version 10.0 beta, ~130 CPD on Radeon 280X, 200 CPD on GFX 1080.
version 9.4.1, version 8.2, ~180 CPD on Radeon 280X.

Sample config.txt
Code:
server = "dtc.graymines.net";
port = "4444";

# Your DTC payout addressaddress = "DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

# You can give this machine a custom name
# Computer name is used as default
#name = "custom-name";

# GPU crash handling
# Enter OS terminal command here
# for example:
#   onCrash = "shutdown -r 1"
onCrash = "0";

# - Valid cpuload range: 0 to 4
# - More than 2 does not make sense
# - You can use 0 for really slow CPUs
cpuload = "1";

# Target Cunningham chain length, default = auto (adjust to difficulty)
target = "auto";

# Sieve size in stripes (1 stripe = 16384 bits)
# Big sieve size gives more candidates with less prime probability
sieveSize = "210";

# Weave depth (primes number count using by sieve)
# Big weave depth increases prime probability, but sieve generate less candidates
weaveDepth = "65536";

# Sieve layers number, optimal value is target*2; default = auto (target*2)
width = "auto";

# Sieve window size
windowSize = "12288";

# Maximal bit size of multipliers using with primorials 13, 14 and 15;
# Default values are 24, 31, 35
# Less values increases prime probability, but sieve generate less candidates
multiplierLimits = ["24", "31", "35"];

# - The following settings have one entry per GPU
# - If you have more than 4 just add more entries or leave it as is to use defaults
# - All entries must be separated by commas and set between double quotes

# 0 = don't use device
# 1 = use device
devices =        ["1", "1", "1", "1", "1", "1", "1", "1"];

# sieves per round value, default = 5
sievePerRound = ["5", "5", "5", "5", "5", "5", "5", "5"];

# -1 means don't change; not supported for NVidia
corefreq =       ["-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1"];
memfreq =        ["-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1"];
powertune =      ["-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1"];
fanspeed =       ["-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1"];

I have the latest Linux xpmclient-cuda-10.3-linux binary for nVidia GPUs (courtesy of eXtremal's coinsforall.io) which I've got pointed at dtc.graymines.net and is happily running on my old Dell XPS 9560 laptop's built-in GeForce 1050. (I needed to heed its instructions to use xpmclientnv -c to adjust it to handle graymines' use of the older protocol.

Cheers

Graham
gjhiggins
Legendary
*
Offline Offline

Activity: 2254
Merit: 1278



View Profile WWW
March 11, 2021, 08:53:22 PM
 #1379

Apertus is no longer under active development, so I suppose it would be fine to interpret .js files, so that they could be run straight off the blockchain.
That might work. What do you have in mind?

I thought ownership was a matter of signing a transaction with the Datacoin client, which should be possible in 0.16.
It can be interpreted as such but there's no software support enforcing it (i.e. you can sign any tx but to what effect?) The semantics of the interpretation remains a purely social understanding. Signing a tx doesn't have any inherent meaning as far as the client is concerned.

I've had a go at fixing up the 0.16.3 client so that the GUI allows users to create pure OP_RETURN (0-valued) txs. So you can put 0.00 for the value of notarizations (of hashed resources) or TrustyURI inscriptions (“Verifiable, Immutable, and Permanent Digital Artifacts for Linked Data” - I'll write more about them later) - they're not free, they still have a cost - the fee you pay to have the tx included in a mined block and have always been an option - as long as they were specially-crafted and submitted via the creatrawtransaction RPC API call:
Code:
createrawtransaction [{"txid":"id","vout":n},...] {"address":amount,"data":"hex",...} ( locktime ) ( replaceable )

Create a transaction spending the given inputs and creating new outputs.
Outputs can be addresses or data.
The purpose of the GUI additions that I created is to simplify this process, now you can do the same thing from the GUI without having to craft txs by hand.


I'm also looking at the W3's DIDs (Decentralized Identifiers) which can be inscribed via the standard Datacoin txdata mechanism  but I suspect users will find some GUI guidance useful.

Cheers

Graham
sampei7777
Member
**
Offline Offline

Activity: 92
Merit: 18


View Profile WWW
March 12, 2021, 02:52:11 PM
 #1380

I thought ownership was a matter of signing a transaction with the Datacoin client, which should be possible in 0.16.
It can be interpreted as such but there's no software support enforcing it (i.e. you can sign any tx but to what effect?) The semantics of the interpretation remains a purely social understanding. Signing a tx doesn't have any inherent meaning as far as the client is concerned.


I would remember that you can already take the ownership of an asset on Datacoin blockchain with ByteStamp Digital Assets.

Here is the tutorial:

https://www.youtube.com/watch?v=gqu0syu9Qtc

and here you can download the windows app:

https://blockchain.bytestamp.net

When you take the ownership of an asset, it writes to blockchain the ByteStampMD5 of the file and the sign of the Address that becomes the owner.

And when the owner transfers an asset to another address, it writes in blockchain that the previous owner has transferred the ownership to another address.

Anybody can read in the Datacoin blockchain that the transfer of the asset was signed by the address that was the previous owner.

Each ByteStamp Digital Asset transaction has an hash that is inserted in the next one transaction, thus creating another blockchain of digital assets that relies on Datacoin blockchain.

All the process is open and verifiable by third parties.

For example, you can read the transaction id 76fbe121399d0b2fd62ee151d7bba079400b0d246fe8cb219407778600689c79

(https://www2.bytestamp.net/blocks/qtx/it/76fbe121399d0b2fd62ee151d7bba079400b0d246fe8cb219407778600689c79)

that transfer an asset from a Datacoin Address to a Bitcoin Address (yes, we can transfer across different wallets types  Wink)

In this way you can transfer each type of file (music, image, video, spreadsheet,...) as like as you transfer bitcoins or datacoins, because each file can become a crypto asset.

Thanks

ByteStamp
Pages: « 1 ... 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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 [69] 70 71 72 73 74 75 76 »
  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!