Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon Managed Blockchain を使ってみた / tried using ...

甲斐 甲
April 19, 2019

Amazon Managed Blockchain を使ってみた / tried using Amazon Managed Blockchain

2018年11月開催の「AWS re:Invent2018」で発表、2019/05/01にリリースされたスケーラブルなブロックチェーンネットワークが作成・管理できるフルマネージド型サービス「Amazon Managed Blockchain」を利用するのに必要となる情報と、実際に環境構築・利用して得られた知見をすごく圧縮してお伝えします。

詳しく知りたい方はQiitaの方へどうぞ。

Amazon Managed BlockchainがリリースされたのでHyperledger Fabricも合わせて情報をまとめてみた - Qiita
https://qiita.com/kai_kou/items/5a968f42c5f96296f6fe

Amazon Managed BlockchainでHyperledger Fabricのブロックチェーンネットワークを構築してみた - Qiita
https://qiita.com/kai_kou/items/e02e34dd9abb26219a7e

甲斐 甲

April 19, 2019
Tweet

More Decks by 甲斐 甲

Other Decks in Technology

Transcript

  1. アイレット株式会社 ( クラウドパック )
 事業戦略本部 技術開発セクション 大阪グループ 
 AI、ブロックチェーンの調査・検証など 
 システムエンジニア


    Python TypeScript C# Go Ruby etc... 
 バックグラウンド
 小さなSESでエンジニア ( 4年 )
 フリーランスでエンジニア ( 8年 )
 事業会社でシステム部マネージャー ( 7年 )
 プレイングマネージャー
 サーバレス大好きっ子
 38歳、既婚、子供 3人 ( 高3、中2、小3 )
 甲斐 甲
 ( かい こう )
 Qiita@kai_kou
 twitter@k_aik_ou
 自己紹介

  2. Amazon Managed Blockchain とは
 AWS re:Invent 2018 で発表された
 スケーラブル な


    ブロックチェーンネットワーク が
 作成・管理できる
 フルマネージド型 サービス
 2019/05/01 リリース!
 参考: re:Invent 2018 / Andy Jassy Keynote / Amazon Managed Blockchain | Amazon Web Services ブログ
  3. Amazon Managed Blockchain とは
 類似サービス
 Blockchain Cloud Service ( Oracle

    Cloud )
 Blockchain Platform ( IBM )
 Blockchain Workbench ( Azure )
 Blockchain Templates ( AWS )
 GCP ?

  4. Blockchain Cloud Service
 ( Oracle Cloud )
 Blockchain Platform
 (

    IBM )
 Blockchain Workbench
 ( Azure )
 Blockchain Templates
 ( AWS )
 GCP ?
 
 Amazon Managed Blockchain とは
 Hyperledger Fabric、
 Ethereum
 Hyperledger Fabric
 
 Ethereum
 
 Hyperledger Fabric
 Ethereum
 ?
 
 フルマネージド
 
 フルマネージド
 
 フルマネージド
 
 環境構築
 
 ?
 
 フレームワーク
 タイプ

  5. フルマネージド
 
 フルマネージド
 
 フルマネージド
 
 環境構築
 
 ?
 


    Blockchain Cloud Service
 ( Oracle Cloud )
 Blockchain Platform
 ( IBM )
 Blockchain Workbench
 ( Azure )
 Blockchain Templates
 ( AWS )
 GCP ?
 
 Amazon Managed Blockchain とは
 Hyperledger Fabric、
 Ethereum
 Hyperledger Fabric
 
 Ethereum
 
 Hyperledger Fabric
 Ethereum
 ?
 
 フレームワーク
 タイプ
 似ているサービス

  6. Blockchain Cloud Service
 ( Oracle Cloud )
 Blockchain Platform
 (

    IBM )
 Blockchain Workbench
 ( Azure )
 Blockchain Templates
 ( AWS )
 GCP ?
 
 Amazon Managed Blockchain とは
 2017年10月
 
 2017年09月
 
 2018年05月
 
 2018年04月
 
 2018年07月
 
 発表
 2018年07月
 
 2017年10月
 
 Preview
 
 2018年04月
 
 ?
 
 リリース
 Managed Blockchain は 2018年11月 発表 2019年05月 リリース 

  7. Hyperledger Fabric とは
 Hyperledger Fabric ( ハイパーレッジャー ファブリック ) は、


    Linux Foundation の Hyperledger プロジェクトで取り扱われる
 ブロックチェーンに関する OSS ( オープンソースソフトウェア ) のひとつ。
 参考: Hyperledger Fabric – Hyperledger
  8. 管理者
 管理方法
 参加
 情報公開
 合意形成
 承認速度
 スマートコントラクト  
 利用モデル
 Hyperledger

    Fabric とは
 パブリック
 ブロックチェーンの種類
 プライベート
 コンソーシアム
 なし
 分散型
 自由
 制限なし
 PoW、PoSなど
 遅い
 あり / なし
 Bitcoin、Ethereum
 など
 あり(単独)
 中央集権型
 承認制
 制限可
 組織内承認
 早い
 あり
 Ethereum、mijin、miyabi など
 あり (複数)
 中央集権型
 承認制
 制限可
 特定者間のコンセンサス 
 早い 
 あり
 Hyperledger Fabric、 
 Hyperledger Swatooth Lake、 
 Hyperledger Iroha など

  9. Ethereum とは
 イーサリアム
 
 Amazon Managed Blockchain で
 まだ利用できないので割愛します m(_

    _)m
 \ 15分でおさまらなーい /
 ブロックチェーンフレームワーク について

  10. フルマネージドサービス
 ( Amazon Managed Blockchain )
 +
 ブロックチェーンフレームワーク
 ( Hyperledger

    Fabric / Ethereum )
 =
 ブロックチェーンネットワーク
 ブロックチェーンフレームワーク について

  11. Peer
 Hyperledger Fabric をもうちょっと詳しく
 アプリケーションとの接続
 トランザクションの検証・実行
 台帳の保有
 ブロックチェーン: Txの実行履歴 


    ステートDB: データの最新状態
 チェーンコード ( CC ) の実行
 ビジネスロジック
 プログラム言語で記述
 ステートDBへのアクセス
 参考: Hyperledger Fabric 入門
  12. CA ( Certificate Authority : サーティフィケイト オーソーリティー )
 Hyperledger Fabric

    をもうちょっと詳しく
 ユーザー、Peerの登録・管理
 MSPという仕組みを利用
 証明書 ( ECerts ) の発行・管理
 証明書がないとトランザクションが 
 実行できない
 参考: Hyperledger Fabric 入門
  13. Hyperledger Fabric をもうちょっと詳しく
 チェーンコード ( CC )
 ビジネスロジック
 Ethereumだとスマートコントラクト 


    プログラミング言語で記述
 Go、Node,js、Javaで実装
 台帳にアクセス
 APIが提供されている
 Peerにデプロイ ( インスタンス化 ) 
 参考: Hyperledger Fabric 入門
  14. 実際に環境構築して使ってみた
 1. ネットワークとメンバー作成
 2. インターフェイスVPCエンドポイント作成
 3. Client ( EC2インスタンス )

    のセットアップ
 4. 管理者をCAに登録
 5. Peerノード作成
 6. チャネル作成
 7. チェーンコードの実装とデプロイ
 構築の流れ

  15. 実際に環境構築して使ってみた
 1. ネットワークとメンバー作成
 2. インターフェイスVPCエンドポイント作成
 3. Client ( EC2インスタンス )

    のセットアップ
 4. 管理者をCAに登録
 5. Peerノード作成
 6. チャネル作成
 7. チェーンコードの実装とデプロイ
 構築の流れ
 AWSっぽいところ

  16. 実際に環境構築して使ってみた
 1. ネットワークとメンバー作成
 2. インターフェイスVPCエンドポイント作成
 3. Client ( EC2インスタンス )

    のセットアップ
 4. 管理者をCAに登録
 5. Peerノード作成
 6. チャネル作成
 7. チェーンコードの実装とデプロイ
 構築の流れ
 参考: Key Concepts: Managed Blockchain Networks, Members, and Peer Nodes - Amazon Managed Blockchain
  17. 実際に環境構築して使ってみた
 1. ネットワークとメンバー作成
 2. インターフェイスVPCエンドポイント作成
 3. Client ( EC2インスタンス )

    のセットアップ
 4. 管理者をCAに登録
 5. Peerノード作成
 6. チャネル作成
 7. チェーンコードの実装とデプロイ
 構築の流れ
 AWSマネジメントコンソール or AWS CLI EC2インスタンスでFabric CLI or Fabric SDK ( Node.js、Java )
  18. 実際に環境構築して使ってみた
 コマンド実行例
 # AWS CLI コマンド $ aws managedblockchain xxxxx

    # Hyperledger Fabric CLI コマンド # Dockerコンテナで実行 $ docker exec cli xxxxx よく利用するコマンド

  19. 実際に環境構築して使ってみた
 $ aws managedblockchain create-network \ --name TestNetwork \ --description

    TestNetworkDescription \ --framework HYPERLEDGER_FABRIC \ --framework-version 1.2 \ --framework-configuration '{"Fabric": {"Edition": "STARTER"}}' \ --voting-policy '{ "ApprovalThresholdPolicy": { "ThresholdPercentage": 50, "ProposalDurationInHours": 24, "ThresholdComparator": "GREATER_THAN"}}' \ --member-configuration '{ "Name": "org1", "Description": "Org1 first member of network", "FrameworkConfiguration": { "Fabric": {"AdminUsername": "AdminUser", "AdminPassword": "Password123"}}}' ネットワーク作成
 コマンド実行例

  20. 実際に環境構築して使ってみた
 $ aws ec2 create-vpc-endpoint \ --vpc-id vpc-xxxxxxxx \ --security-group-ids

    sg-xxxxxxxxx \ --subnet-ids subnet-xxxxxxxx \ --service-name \ com.amazonaws.us-east-1.managedblockchain.n-XXXXXXXXXXXXX \ --vpc-endpoint-type Interface \ --private-dns-enabled インターフェイスVPCエンドポイント作成 
 コマンド実行例

  21. 実際に環境構築して使ってみた
 $ aws managedblockchain create-node \ --network-id n-XXXXXXXXXXXXXXX \ --member-id

    m-XXXXXXXXXXXXXX \ --node-configuration InstanceType=bc.t3.small,\ AvailabilityZone=us-east-1a Peerノード作成
 コマンド実行例

  22. 実際に環境構築して使ってみた
 $ docker exec -e "CORE_PEER_TLS_ENABLED=true" \ -e "CORE_PEER_TLS_ROOTCERT_FILE=mb.pem" \

    -e "CORE_PEER_ADDRESS=$PEER" \ -e "CORE_PEER_LOCALMSPID=$MSP" \ -e "CORE_PEER_MSPCONFIGPATH=$MSP_PATH" \ cli peer channel create -c mychannel \ -f /opt/home/mychannel.pb -o $ORDERER \ --cafile mb.pem --tls チャネル作成
 コマンド実行例

  23. $ docker exec -e "CORE_PEER_TLS_ENABLED=true" \ -e "CORE_PEER_TLS_ROOTCERT_FILE=/opt/home/mb.pem" \ -e

    "CORE_PEER_ADDRESS=$PEER" \ -e "CORE_PEER_LOCALMSPID=$MSP" \ -e "CORE_PEER_MSPCONFIGPATH=$MSP_PATH" \ cli peer chaincode invoke \ -C mychannel \ -n mycc -c '{"Args":["invoke","a","b","10"]}' \ -o $ORDERER --cafile /opt/home/mb.pem --tls 2019-04-04 01:25:39.699 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Chaincode invoke successful. result: status:200 実際に環境構築して使ってみた
 チェーンコード実行 ( Invoke )
 コマンド実行例

  24. 実際に環境構築して使ってみた
 チェーンコード実行 ( Query )
 コマンド実行例
 $ docker exec -e

    "CORE_PEER_TLS_ENABLED=true" \ -e "CORE_PEER_TLS_ROOTCERT_FILE=/opt/home/mb.pem" \ -e "CORE_PEER_ADDRESS=$PEER" \ -e "CORE_PEER_LOCALMSPID=$MSP" \ -e "CORE_PEER_MSPCONFIGPATH=$MSP_PATH" \ cli peer chaincode query \ -C mychannel \ -n mycc -c '{"Args":["query","a"]}' 100
  25. リージョン指定
 us-east-1 ( バージニア北部 ) のみ
 AWSアカウントの権限
 作成権限が必要 ( VPNエンドポイント、セキュリティグループ、

    
 EC2インスタンス、Managed Blockchain ) 
 実際に環境構築して使ってみた
 構築のポイント

  26. Hyperledger Fabricのバージョン
 Ver1.2 のみ利用可能 ( 最新は Ver1.4 )
 複数組織 (

    メンバー ) での構成
 AWSアカウントのID ( 12桁 ) で招待・管理
 Docker利用
 Hyperledger Fabric CLI実行用のDockerコンテナ
 EC2インスタンスにパッケージインストールが必要
 実際に環境構築して使ってみた
 構築のポイント

  27. - re:Invent 2018 / Andy Jassy Keynote / Amazon Managed

    Blockchain | Amazon Web Services ブログ 
 https://aws.amazon.com/jp/blogs/news/reinvent-2018-andy-jassy-keynote-amazon-managed-blockchain/ 
 - Hyperledger Fabric – Hyperledger 
 https://www.hyperledger.org/projects/fabric 
 - Hyperledger Fabric 入門, 第 1 回: 基本的な構成 
 https://www.ibm.com/developerworks/jp/cloud/library/cl-hyperledger-fabric-basic-1/index.html 
 - Key Concepts: Managed Blockchain Networks, Members, and Peer Nodes - Amazon Managed Blockchain 
 https://docs.aws.amazon.com/managed-blockchain/latest/managementguide/network-components.html 
 - Blockchain Cloud Service | Oracle 日本 
 https://www.oracle.com/jp/cloud/blockchain/ 
 - Blockchain Platform - 概要 - 日本 | IBM 
 https://www.ibm.com/jp-ja/cloud/blockchain-platform 
 - ブロックチェーン テクノロジとアプリケーション | Microsoft Azure 
 https://azure.microsoft.com/ja-jp/solutions/blockchain/ 
 - Building a better cloud with our partners at Next ‘18 
 https://www.blog.google/products/google-cloud/building-a-better-cloud-with-our-partners-at-next-18/ 
 - Amazon Managed BlockchainがリリースされたのでHyperledger Fabricも合わせて情報をまとめてみた - Qiita 
 https://qiita.com/kai_kou/items/5a968f42c5f96296f6fe 
 - Amazon Managed BlockchainでHyperledger Fabricのブロックチェーンネットワークを構築してみた - Qiita 
 https://qiita.com/kai_kou/items/e02e34dd9abb26219a7e 
 参考