vdorut / convert2ots

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

convert2ots

Convert bitcoin timestamp proof ( like Chainpoint v2 ) to OpenTimestamps proof.

Example

Chainpoint valid receipt from https://github.com/chainpoint/chainpoint-validate-js and save to receipt.json

{
 "@context": "https://w3id.org/chainpoint/v2",
 "type": "ChainpointSHA256v2",
 "targetHash": "bdf8c9bdf076d6aff0292a1c9448691d2ae283f2ce41b045355e2c8cb8e85ef2",
 "merkleRoot": "51296468ea48ddbcc546abb85b935c73058fd8acdb0b953da6aa1ae966581a7a",
 "proof": [
   {
     "left": "bdf8c9bdf076d6aff0292a1c9448691d2ae283f2ce41b045355e2c8cb8e85ef2"
   },
   {
     "left": "cb0dbbedb5ec5363e39be9fc43f56f321e1572cfcf304d26fc67cb6ea2e49faf"
   },
   {
     "right": "cb0dbbedb5ec5363e39be9fc43f56f321e1572cfcf304d26fc67cb6ea2e49faf"
   }
 ],
 "anchors": [
   {
     "type": "BTCOpReturn",
     "sourceId": "f3be82fe1b5d8f18e009cb9a491781289d2e01678311fe2b2e4e84381aafadee"
   }
 ]
}

Run conversion tool to generate receipt.ots

$ node index.js --chainpoint examples/chainpoint.json --output receipt.ots

OpenTimestamp proof receipt.ots

$ ots info receipt.ots
File sha256 hash: bdf8c9bdf076d6aff0292a1c9448691d2ae283f2ce41b045355e2c8cb8e85ef2
Timestamp:
prepend bdf8c9bdf076d6aff0292a1c9448691d2ae283f2ce41b045355e2c8cb8e85ef2
sha256
prepend cb0dbbedb5ec5363e39be9fc43f56f321e1572cfcf304d26fc67cb6ea2e49faf
sha256
append cb0dbbedb5ec5363e39be9fc43f56f321e1572cfcf304d26fc67cb6ea2e49faf
sha256
verify BitcoinBlockHeaderAttestation(421439)
# Bitcoin block merkle root 7a1a5866e91aaaa63d950bdbacd88f05735c935bb8ab46c5bcdd48ea68642951

About


Languages

Language:JavaScript 100.0%