
今回は「Tierion」の主要APIのHASH APIを使用してあるデータから生成したハッシュ値をブロックチェーンに固定してみます。HASH APIを利用するとデータを送信することなく、ハッシュ値だけをブロックチェーンに固定出来ます。固定したハッシュ値はreceiptIdというIDで後で参照可能です。
TierionにはDATA APIというデータを登録するAPIが存在しています。こちらは別の機会に記事にする予定です!
Tierion HASH API ドキュメントもぜひ参照してみてください。
- TierionにSignUp(登録)する。
- アクセストークンを取得する。(※各種APIを利用するための一時的な鍵のようなもの)
- アクセストークンを元にHASH APIでハッシュ値を登録する。
- ブロックチェーンに登録されたハッシュ値をreceiptIdで参照する。
1. TierionにSign Upする。
初回のみ必要な作業となります。TierionにSignUp時はメールアドレスが必要となります。

FreeプランではDATA API利用時にData Storeが5個。月15,000レコードまでは登録出来るようです。

2. アクセストークンを取得する。
アクセストークン取得にはTierion SignUp時に入力したメールアドレスとパスワードが必要です。
POSTによる通信となります。(下記のサンプル例のID/PASSはTierion公式ドキュメントの内容となります。実際は登録された内容に置き換え下さい。)
エンドポイント:https://hashapi.tierion.com/v1/auth/token
リクエストパラメータ
{ "username": "pgibbons@initech.net", "password": "ilovekungfu" }
レスポンス
{ "access_token": "eyB9eXAiOiJKV1QiLDJhbGciOiJIUzI1NiJ8.eyJpZCI6IjU2ZyyiYzFhNWY5Yjg1MjMyZmRjYWRhNyIsInJsbiI6MjBwMCwicmxpIjoicyIsImlzQWRtaW4iOnRydWUtImlhdCI6MTQ2MTI0NzE2NSwiZXhwIjoxNDYxMjUwNzY1LCJqdGkiOiI1MDUyYmFlZDhkNTM5NjcyNDNiMjkzN2RjNjRjNTcyOTJmNTQwZDZhIn0.KNiG-QHdeaH1jVLJpx0ykov8Kk7ogts69k5OhDkgFVM", "expires_in": 3600, "refresh_token": "ec71236f77ebd665210912ae8891aa08ee8ec3e4" }
上記のように access_token が返却されるので、この access_token をもとにしてHASH APIを利用します。通常 access_tokenは1時間の期限になっていますので注意が必要です。
以下、サンプルフォームです。ご自身で登録されたメールアドレス、パスワードを入力いただくと access_tokenが返却されます。
3. アクセストークンを元にHASH APIでハッシュ値を登録する。
登録するハッシュ値は SHA-256 の形式となります。実際は別でライブラリを利用することが多いと思いますが、試してみる分にはSHA-256のハッシュをオンラインで生成できるサイトを利用してみるとよいと思います。
エンドポイント:https://hashapi.tierion.com/v1/hashitems
リクエストパラメータ
{ "hash": "9dbd72de6836ce7c05c0c065b474af43598cdaace5deae8054e8efb03cb58d81" }
レスポンス
{ "receiptId": "571694dd6b5c7b711861ea67", "timestamp": 1461097693 }
上記のように receiptIdとtimestampが返却されます。この receiptId をもとにして登録済のハッシュ値を参照することが可能です。timestampは登録されたタイミングからの経過時間となります。
access_tokenはリクエスト時のヘッダーに追加する必要があるため、サンプルフォームは用意していません。簡単に利用できるTierion HASH API Sampleを用意しました。GitHubにVisual C#のソースをアップしました。

tierion_hash_api_001.exe を実行すると上のような画面になります。access_tokenはHASH APIとその登録した内容を確認するreceiptsの両方で必須のパラメータとなります。ハッシュ値の登録だけであればaccess_token, HASHの2か所の入力となります。入力後Submitをクリックすることでハッシュ値が登録され、結果が表示されます。
4. ブロックチェーンに登録されたハッシュ値をreceiptIdで参照する。
エンドポイント: https://hashapi.tierion.com/v1/receipts/5717a47db1b9c45a1939f005
リクエストパラメータ
パラメータはありません。エンドポイントにreceiptsIdを付与してリクエストします。
レスポンス
{ "receipt": "{\"@context\":\"https://w3id.org/chainpoint/v2\",\"type\":\"ChainpointSHA256v2\",\"targetHash\":\"a83a2c5c11a2bc814d0b1dca0a385d71a1f4d662b4e31335ba7562c56cce15b1\",\"merkleRoot\":\"2d21167d2f2f73e309d5ac00ab9faaf8b530478c5b64dcd5755511c8a3eccfa3\",\"proof\":[{\"left\":\"7c6e3b0159f1359d0f9f5a3b923011b7466bdf1423317ca09121b5dc61ad1836\"},{\"right\":\"541c5ae04e83c2880296818978511893ba1b00f1515162cd865f25da54f636d0\"},{\"right\":\"67b7ced55a4db4bb0fbaf2036901888a08ab7d8126556431258017652cf62092\"}],\"anchors\":[{\"type\":\"BTCOpReturn\",\"sourceId\":\"33884d525ca1cc54313fa2f27be4cf3442b35314866851cc7fc5ec3973d80250\"}]}" }
sampleアプリケーションではaccess_tokenと、receiptIdの2つを入力してSubmitとなります。

最近のコメント