Programming The Blockchain in C#をJSでやる


Programming The Blockchain in C# とは

ブロックチェーン(主にbitcoin)をC#で学べる、無料で読める本です。
クリエイティブ・コモンズにのっとってオープンに作成されています。
https://programmingblockchain.gitbooks.io/programmingblockchain-japanese/

個人的にC#を触ったことがない&ブロックチェーン開発はJSの方が主流なように見受けられるので、JSで最後まで進められるのか把握していませんが、今回はJSでやっていこうと思います。

library

bitpay社が提供しているbitcoreを用います。
https://github.com/bitpay/bitcore

npm install bitcore

ライブラリのAPI等はこちらに載っています。
https://bitcore.io/api/lib

 ビットコインアドレス 


var bitcore = require('bitcore-lib');

var privateKey = new bitcore.PrivateKey(); // ランダムな秘密鍵を生成
var publicKey = privateKey.toPublicKey(); //秘密鍵から公開鍵を作成

console.log(publicKey); //<PublicKey: 028f1f9fdbe95b653b36652e8b4189ec05c328015cd08ef801c865426c4808418b>

console.log(publicKey.toAddress('mainnet')); //<Address: 17SzkBJ8qkn76a8eDMYH4vHtsUKgMG7xVH, type: pubkeyhash, network: livenet>
console.log(publicKey.toAddress('testnet')); //<Address: mmxx3EP7enDMsgcFvvWetqWDjTvPJitAWa, type: pubkeyhash, network: testnet>

ビットコインのアドレスはメインネットとテストネットでプレフィックスが異なるので、その様子が分かりますね。アドレスは、Base58Checkにエンコードされたものです。
https://en.bitcoin.it/wiki/List_of_address_prefixes

参考