Hi!
I'm going to run an experimental cryptocurrency (just another fork, nearly nothing new :-/). Here are some technical details:
- Datacoin is a Primecoin-fork: same PoW method
- Binary data field added to all transactions. Data field size is limited to 128Kb. Block size is limited to 1Mb.
unsigned int nLockTime;
+ std::vector data;
- senddata RPC method is added: it creates a tx with data and the change sent back. The example below shows how to save a bzip2 compressed file into the blockchain. senddata method requires base64 encoded data as an argument. senddata method prints txid on success.
bzip2 -c -9 filename.txt | base64 -w 0 | xargs -I XX datacoind senddata XX
- getdata RPC method:
- MIN_TX_FEE is set to 0.05 (Primecoin value is 0.01) => fully loaded block will give 51.2 coins to miner additionally to block reward.
- Simple web applications can be stored inside blockchain. See details here:
https://bitcointalksearch.org/topic/anndatacoin-next-step-web-applications-inside-blockchain-demo-405992Datacoin is intended to be reliable censorship-free data storage and a currency to pay for this storage. Money transfer isn't the first purpose of Datacoin.
Data is stored in the blockchain "forever" (as long as blockchain exists) and can be retrieved with tx hash as an identifier. I consider this as a platform to be used by applications (and not directly by users): torrent trackers, encrypted messaging services etc.. I don't consider blockchain as a place to store heavy data like video files: this should be too expensive. Instead I propose to store in Datacoin torrent files, certificates, possibly some HTML pages and other kinds of metainformation.
As soon as Datacoin is a STORAGE, blockchain will be HEAVY. Max 1 year blockchain size is 1Mb * 60 mins * 24 hours * 365 days = 513.28 Gb
Transactions without data are also supported
There is no way to store file name or file type in the blockchain. If required file name and type are to be handled by upper-level protocol.
I plan to launch a Datacoin blockchain today: Nov 17, 13:15 GMT. Additional update will be published in one hour before launch.
Blockchain will contain only genesis block at the beginning and the difficulty will be reasonably high.
Official code repositoryhttps://github.com/foo1inge/datacoin - Primecoin fork with data in tx and corresponding RPC (not useful just now because nobody has money for fee).
https://github.com/foo1inge/datacoin-hp - Primecoin-hp fork with data in tx (and no RPC ... I'll port this later). You should use this for mining because it is faster.
Scriptshttps://github.com/foo1inge/datacoin-browser - Perl scripts for putting and getting files to/from blockchain.
ATTN1: Be sure you understand what you do. Please review scripts before using them (seriously).
ATTN2: Until datacoin-hp update you need non-hp version of datacoin for these scripts.
BinaryDatacoin-hp Windows binary (still i686 arch):
http://sourceforge.net/projects/datacoin/files/datacoin-qt-131204.zip/download .
Linux users have to build binaries themselves: this is more secure and gives better performance. Please check Primcoin build instructions (libgmp for -hp version).
2013-12-04 update:- 256 bytes getwork support (thanks to yvg1900 for support)
- Checkpoint on 72200
- datacoin-hp supports senddata RPC
- Strings fixed
- Datacoin logo (thanks to Zorrosv for design and maxsolnc for org. help)
Datacoin FAQ1. What is Datacoin?
Datacoin is both a reliable and decentralized data storage service and a currency to pay for this service.
2. Where my files are actually stored in Datacoin network?
Files are stored on local HDDs of all users participating in the Datacoin network. Each user has it's own full local copy of all Datacoin files.
3. Are my files encrypted in Datacoin?
No. You are responsible to encrypt your files before sending.
4. Is there any way to delete my data from Datacoin blockchain?
No. Once data goes into Datacoin blockchain there is no way to delete this data.
5. Why Datacoin doesn't handle file names and any other details about my files?
Datacoin daemon works with blobs only. This is because it must be a reliable software. Any additional metadata must be strictly verified and this code can lead to bugs. Bugs are bad. But no special rules are required for blobs except of size verification.
There is a upper level protocol (Datacoin envelope) that handles file name, files bigger than 128Kb, file updates and compression. You can follow Datacoin envelope development here:
https://github.com/foo1inge/datacoin-browserDatacoin envelope doesn't need any modification in Datacoin daemon and Qt wallet - JSON RPC connection is enough.
6. How much disk space does it take?
1Mb (max block size) * 60 minutes * 24 hours * 365 days = no more than 513Gb per 1 year
7. Is this storage free?
No. Currently fee is 0.05 DTC per 1Kb of data. This standard fee can be changed in future without hardfork.
8. Sender pays fee and who gets this fee?
All fee goes to miners i.e. fee is distributed between nodes supporting Datacoin network proportionally to their mining power.
Fee from fully loaded block is about 50DTC (block reward now is ~11DTC and it decreases).
9. Does the whole concept mean that it is tough to go for Android or IPhone client?
Mobile clients need light wallets in order to see balance and send transactions. Light wallet will interact to some web service instead of storing full blockchain locally.
10. People really need to store more than 513Gb of data per year in decentralized storage. Do you have any plans to increase storage space?
Datacoin is a root storage engine in the decentralized storage service. This storage is both reliable and expensive. I'm now working on concept of personal chains. Personal chains will start from root Datacoin blockchain and will be replicated to nodes by subscription (nodes can choose chains they subscribe to). Datacoin blockchain will handle only identification and some metadata for all personal chains.
Important notes:
- This (personal chains) is only on conceptual level now and will be clarified and prototyped in few months.
- This doesn't mean Datacoin hardfork. Personal chains will be constructed on top of Datacoin network.
11. What is current state of Datacoin project?
Datacoin network [reliable and expensive blob storage in blockchain] - up and running
Datacoin envelope [file storage in blockchain] - under development (Perl prototyping)
Personal chains [more data outside of blockchain] - on conceptual level
12. Who is working on Datacoin project?
I'm working alone for now. I didn't accepted yet anybody into development team but I plan to do this in the future in order to make process more sustainable. Keep in touch and thank you for your support.