getProof

Get a blockchain proof for a database version

Definition

getProof returns a structured document similar to a chainpoint receipt, which cryptographically proves that a version proof is valid and on the blockchain.

Syntax

The getProof command has the following format:

{
    "getProof": <string> or <number>,
    "format": <string>,
    "listCollections": true|false
}

Usage

The command accepts the following fields:

FieldTypeDescription
getProofString or numberIf string, then a proof Id from the _provendb_versionProofs table.If a number, then a specific database version number
formatstringEither binary or json
listCollectionsbooleanIf true all the collections that are included in the proof are listed

The returned document contains a subset of the following fields:

FieldTypeDescription
getProof.oknumberThe status of the command
getProof.proofsdocumenta single or an array of proof documents (refer to table below)
getProof.errmsgstringThe error message

Each proof document contains the following fields:

FieldTypeDescription
proofIdstringthe proof Id
statusstringstatus of the proof (Pending, Valid, Invalid, Submitted, Failed, Purged)
proofdocumentThe proof document (default format: JSON)

Examples

Get proof by version number (binary format)

The following command fetches a proof using proof Id:

mongo>// Look in the database for the most recent proof 
mongo>db.getCollection('_provendb_versionProofs').
...   find({ status: 'valid' }, { proofId: 1, version: 1, _id: 0 }).
...   sort({ version: -1 }).
...   limit(1).
...   pretty();
{
	"proofId" : "53780ed0-45f2-11e9-a4bd-01752f568485",
	"version" : NumberLong(34416)
}
mongo>// Fetch that proof by version number:
mongo>db.runCommand({getProof:34416,format:'binary'})
{
	"ok" : 1,
	"proofs" : [
		{
			"proofId" : "53780ed0-45f2-11e9-a4bd-01752f568485",
			"version" : NumberLong(34416),
			"submitted" : ISODate("2019-03-14T00:44:29Z"),
			"type" : "Full",
			"hash" : "afd2509f6f357ed177f53d8581313849eacaa973cc987c941c0de4136829e1ce",
			"status" : "Valid",
			"details" : {
				"protocol" : {
					"name" : "chainpoint",
					"uri" : "http://13.238.131.2",
					"hashIdNode" : "53780ed0-45f2-11e9-a4bd-01752f568485",
					"chainpointLocation" : "https://b.chainpoint.org/calendar/2855565/data"
				},
				"btcTxn" : "e0ed2fd9065f8adc26e9d82bd6fff700ba376dc69359e1bfe2190a5066ee5715",
				"btcBlock" : "566950"
			},
			"proof" : BinData(0,"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")
		}
	]
}

Get Proof by proof Id retrieving JSON format proof

mongo>// Look in the database for the most recent proof 
mongo>db.getCollection('_provendb_versionProofs').
...   find({ status: 'valid' }, { proofId: 1, version: 1, _id: 0 }).
...   sort({ version: -1 }).
...   limit(1).
...   pretty();
{
	"proofId" : "53780ed0-45f2-11e9-a4bd-01752f568485",
	"version" : NumberLong(34416)
}
mongo>// Fetch that proof by version number:
mongo>db.runCommand({getProof: '53780ed0-45f2-11e9-a4bd-01752f568485',format:'json'})
{
	"ok" : 1,
	"proofs" : [
		{
			"proofId" : "53780ed0-45f2-11e9-a4bd-01752f568485",
			"version" : NumberLong(34416),
			"submitted" : ISODate("2019-03-14T00:44:29Z"),
			"type" : "Full",
			"hash" : "afd2509f6f357ed177f53d8581313849eacaa973cc987c941c0de4136829e1ce",
			"status" : "Valid",
			"details" : {
				"protocol" : {
					"name" : "chainpoint",
					"uri" : "http://13.238.131.2",
					"hashIdNode" : "53780ed0-45f2-11e9-a4bd-01752f568485",
					"chainpointLocation" : "https://b.chainpoint.org/calendar/2855565/data"
				},
				"btcTxn" : "e0ed2fd9065f8adc26e9d82bd6fff700ba376dc69359e1bfe2190a5066ee5715",
				"btcBlock" : "566950"
			},
			"proof" : {
				"@context" : "https://w3id.org/chainpoint/v3",
				"type" : "Chainpoint",
				"hash" : "afd2509f6f357ed177f53d8581313849eacaa973cc987c941c0de4136829e1ce",
				"hash_id_node" : "53780ed0-45f2-11e9-a4bd-01752f568485",
				"hash_submitted_node_at" : "2019-03-14T00:44:29Z",
				"hash_id_core" : "54b8cc30-45f2-11e9-bec9-01f75c6aaef9",
				"hash_submitted_core_at" : "2019-03-14T00:44:31Z",
				"branches" : [
					{
						"label" : "cal_anchor_branch",
						"ops" : [
							{
								"l" : "node_id:53780ed0-45f2-11e9-a4bd-01752f568485"
							},
							{
								"op" : "sha-256"
							},
							{
								"l" : "core_id:54b8cc30-45f2-11e9-bec9-01f75c6aaef9"
							},
							{
								"op" : "sha-256"
							},
							{
								"l" : "nistv2:1552524180000:ab83d364232a00e4d34d09a779341b8a88d5547b6cf36e6064987af74e36f36b84642d8b8291fbd59d7ed2fe9397e85a544fbe5cdb805efefc660632baaa208b"
							},
							{
								"op" : "sha-256"
							},
							{
								"l" : "91633cada78c65f30961413088cf110392063e82e2f71d0f2267f17b1772d515"
							},
							{
								"op" : "sha-256"
							},
							{
								"l" : "3e06a338a4917fa7252e37d98f3e28cbfe482dedc525630475b7d4d3669f227d"
							},
							{
								"op" : "sha-256"
							},
							{
								"r" : "3c7c03d64fa5e2b36729285b792d0368853fc3ff96858cce2ae5de301ec107a7"
							},
							{
								"op" : "sha-256"
							},
							{
								"l" : "2855048:1552524275:1:https://b.chainpoint.org:cal:2855048"
							},
							{
								"r" : "53f10396fa68af621b87d22cf5d9a892a85de2cd2a7f99b607745efd70c4afc5"
							},
							{
								"op" : "sha-256"
							},
							{
								"anchors" : [
									{
										"type" : "cal",
										"anchor_id" : "2855048",
										"uris" : [
											"https://b.chainpoint.org/calendar/2855048/hash"
										]
									}
								]
							}
						],
						"branches" : [
							{
								"label" : "btc_anchor_branch",
								"ops" : [
									{
										"l" : "53f10396fa68af621b87d22cf5d9a892a85de2cd2a7f99b607745efd70c4afc5"
									},
									{
										"op" : "sha-256"
									},
									{
										"l" : "3c9b3e46c0ab2165bae8831a77807ee03a92cfe3db3e84e48601c5086bb60ce2"
									},
									{
										"op" : "sha-256"
									},
									{
										"l" : "9a206e08c4454ab1c4128811a669bef592379cf2857f6e393be9c1b3b5afad96"
									},
									{
										"op" : "sha-256"
									},
									{
										"l" : "21d25ef7f93ab11e9083bb33f634b44d520d20bf4ab7dacce4dcdf9d3d83df0a"
									},
									{
										"op" : "sha-256"
									},
									{
										"r" : "064dc43481386d8e8527f55598fc68f8e25fcedc3e95eb183f1072826713fa24"
									},
									{
										"op" : "sha-256"
									},
									{
										"r" : "8016ff7d611aa76ebfbb9e39496d88675888c68dc7e00f22955141d182458cf2"
									},
									{
										"op" : "sha-256"
									},
									{
										"r" : "6baf0c6a9e1a624fce36a91827856ed1e9cb643ee73c4040ba82624e25a79ed3"
									},
									{
										"op" : "sha-256"
									},
									{
										"l" : "470874a86d8a37bc33654eb16eaca85dee8a9185e545b4a5c5a25f40dd28403e"
									},
									{
										"op" : "sha-256"
									},
									{
										"l" : "0100000001b40d79c9a1e0b7023be335ebea237c609b45fbdae379812ca038811f3a711e24010000006a473044022014111fb8e2e12757294657c7d898c7b467338ab35fa5750348d2fec6a480715002201a586bd22814655b3e134fcb5887ab996c2784af3074f5720dfede4f77b385e50121023f64280243b139aecdcd947b732f2cbcb49e6c78550929a5f8f3679837b8ebf7ffffffff020000000000000000226a20"
									},
									{
										"r" : "13fedd01000000001976a91488cc4cc4b7c2b04a33d8f1cabe5610bd435645b788ac00000000"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"r" : "7ec49528a74e16ab6acbd5bf647d99a4b99d8c430b96286346d9e5b38f615ae6"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"r" : "3430ab1ccd99c89e22bdf1f0ec6af22d4960dcbaa14119769a16f2f14989ea57"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"l" : "426d3cb49b24f57378ebeef7723bb1948497964c231c9fac3359a990720e2f56"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"l" : "fe481cfff3671ca781ffdeea51ca64efc4fbf44487c7dc6038bbc730e94fd501"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"l" : "a5492baf2d94f8963b8a53c58f5f71324369a644e8626b517682d08a65b8c9f2"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"l" : "0ed682ec2ce923ef36bcca51a13393ff7c9716eae799f373d9dd53c65fb0ad7c"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"l" : "cba6cb067a846a1eb8a0bee985bc063fd0ab1ea23ca16d5f886ff70b5fe63b1e"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"r" : "c506a63051b386e47aa7fc18609fc65eafd731c887c2a6c5f833069759ae5a30"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"l" : "ab4bbd2826d1cd6e5fa608151347180b7f0054ad295c5e249ce9b64a338040bc"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"l" : "085d579a7f03e01aa1e1e218b7a46d5bc918b06dc10f8571846c120cb5940464"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"r" : "828e9ee3a3f28122a0e434666e815cf35714505dd93cecbb33647b9374373c72"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"r" : "3cc43f4c7a594225dd1dcb88ae8db3005d549411aeab8f0c9b4626960dc34e0e"
									},
									{
										"op" : "sha-256-x2"
									},
									{
										"anchors" : [
											{
												"type" : "btc",
												"anchor_id" : "566950",
												"uris" : [
													"https://b.chainpoint.org/calendar/2855565/data"
												]
											}
										]
									}
								]
							}
						]
					}
				]
			}
		}
	]
}

What’s Next