Toporick is an Ethereum DApp for making agreements based on signatures of off-chain entities in the blockchain. This can be signatures of digital documents, images, PDF or any other file.
The plan is to make a collection of Smart Contracts, which will be helpful for making an agreement based on references to the off-chain digital documents.
Roadmap:
-
✓ publish signatures to blockchain (Basic Signature Contract)
-
✓ publish UI online
-
❏ integrate into Mist
-
❏ add signatures from multiple parties
-
❏ verification rules for a document
-
❏ timeframe
-
❏ same signatures from multiple parties
-
❏ required types of signatures
-
-
❏ command line tools
Contract is deployed at address: 0x4B8e1ad58657F8b4b036AD12AfbCef54D24Ac9Ba
Supposed to be used as a distributed storage for digital signatures. Like "keep md5 of this file forever".
Use case:
-
publish signatures of a downloadable file for a validation (like what we have for Ethereum client itself, published on official repo; now it can also be published into blockchain)
-
demonstrate proof of document existence at a point of time
Notice that unlike to existing way of publishing such signatures on a website/ftp, publishing to blockchain through Toporick, it protects signatures from forgery. Once it published on blockchain, it stays here forever.
It allows to:
-
create a document
-
add an unlimited number of signatures to this document
-
the signature consists of:
-
type - a name for signature. ASCII bytes, up to 16 characters long
-
value - signature value, a byte array
-
-
only document author can add signatures to a document
Notice that type
and value
could be anything, not restricted to any particular hash name or value.
Which allows to store ordinary key-value pairs here. May be a metadata like "filename=<filename in ascii>".
Document 1001 |
|
SHA256 |
4a50dbce1d08d3299a7bada8654ee1bc43ec8fe5f7c9b468b5ae85f89c663214 |
SHA512 |
c9a73eaf0d4b779ad790fd3e558412eaa2dba774bff85084d58b954025e49d5d fc33c9d8fff9eecc69538205cddeaff584c8fef189ee809ad2be71b1d7de549e |
Document 1002 |
|
Type |
< File > |
Filename |
< README.adoc > |
Size |
320E0 |
MD5 |
22644302c3e19ebe6dec2a59e388bfe8 |
SHA1 |
ee95bc49e493409d43226fa8a8024d79561fdbab |
There’re a standalone UI to operate this contracts, that can be run on any computer with access to Ethereum node via RPC. The app is built using ConsenSys Truffle and React + Redux.
DApp is deployed to following url: https://toporick.com/dapp/
You can use this URL to play with app. It will expect that Ethereum JSON RPC is answering on http://localhost:8545 and
XMLHttpRequests are allowed to this address. There is one issue though: both of them must use same HTTP Schema. And
by default you cannot start Ethereum JSON RCP under https://
. You have a choice: setup a secured frontend, or use plain
http for both. First is preferred.
For later you simply have to use http://toporick.com/dapp/ and run Geth as following:
geth --rpc --rpccorsdomain http://toporick.com
But please be careful, http connection is insecure an who knows who is listening your traffic.