Introduction
About Datum
Datum enables DApp developers to store unlimited amounts of data on a decentralized data store, while still having on-chain guarantees like proof of storage and proof of access.
Think of it as a decentralized alternative to a cloud database. Datum provides a storage layer and optionally access to a data marketplace to monetize your data. We cover the basics so you can focus on your users and business.
Datum is comprised of:
- Blockchain Layer
- Storage Layer
- Data Marketplace Layer
Blockchain Layer
A hash of each piece of data that is saved through the Datum SDK is stored on a Blockchain to provide an immutable log of who stored what data, when, and who should have access or whom it was bought by. The main functionality of Datum that enables this is implemented through Smart Contracts and these can be run on any Blockchain that supports Smart Contracts, e.g. Ethereum but also for example EOS, NEO etc. At the moment Datum is provided on the Ethereum Blockchain but will be made available on other Blockchains in the future.
In order to reduce strain on the Ethereum Mainnet and provide faster performance Datum is currently running its own Datum Blockchain. The Datum Blockchain is a fork of Ethereum, with its own Genesis Block and mining being performed by its own Storage Nodes. Currently Datum operates 1 public test network as follows:
Codename | Status | Nodes | Netstat | Blockexplorer |
---|---|---|---|---|
megatron | public testnet | 4 private nodes | https://netstats-testnet.datum.org | https://explorer.megatron.datum.org/ |
Storing data on Datum requires payment in DAT Tokens. The DAT Token is an ERC-20 token on the Ethereum Mainnet. Datum provides a bridge contract (Plasma) that allows users to utilize DAT on Ethereum Mainnet in the Datum Blockchain, by locking DAT on Ethereum Mainnet and making it available on the Datum Blockchain.
For each piece of data stored in the Storage Layer the following information is stored on the Datum Blockchain:
Parameter | Type | Description |
---|---|---|
owner | address | The address of the owner of the data |
id | bytes32 | hash of data |
merkle | bytes32 | merkle root |
size | uint256 | size of data |
keyname | bytes32 | optional keyname |
replicationMode | uint | replication level |
privacyLevel | uint | privacy level |
duration | uint | storage duration |
createdAt | uint | creation timestamp |
Storage Layer
The actual data that is saved through the Datum SDK is stored in a distributed network of storage nodes. Storage Nodes can be run by anyone by downloading the Datum Storage Node software and providing sufficient Harddisk, CPU and Bandwidth resources.
Replication
Data stored in Datum can be replicated to multiple individual storage nodes depending on your business requirements. At the moment Datum supports a simple replication strategy where you can specify how many times you want your data to be replicated, with no specific requirements to the storage nodes that store your data. In the future it will be possible to request storage nodes with specific characteristics, for example geographical location, or uptime and bandwidth reliability and other requirements.