SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
第3回
MinChain - 教育用ブロックチェーンの紹介
1. MinChain をビルドする
2. 実行する
1
3-1MinChain をビルドする
2
MinChain をビルドする (1/4)
GitHub 上の MinChain のレポジトリからファイルがダウンロードし、自分のコンピュータ
上にレポジトリを作成する
workspace $ git clone https://github.com/yutopio/MinChain.git
Cloning into 'MinChain'...
remote: Counting objects: 223, done.
remote: Total 223 (delta 0), reused 0 (delta 0), pack-reused 223
Receiving objects: 100% (223/223), 43.20 KiB | 356.00 KiB/s, done.
Resolving deltas: 100% (140/140), done.
workspace $ cd MinChain/
MinChain $
3
MinChain をビルドする (2/4)
Nuget と呼ばれる機能をもちいて、外部のライブラリ (ソフトウェアの集合体) をダウン
ロードしてくる。依存関係の解決ともいう
MinChain $ dotnet restore
Restoring packages for /.../MinChain/MinChain.csproj...
Generating MSBuild file /.../MinChain/obj/MinChain.csproj.nuget.g.props.
Generating MSBuild file /.../MinChain/obj/MinChain.csproj.nuget.g.targets.
Restore completed in 723.29 ms for /.../MinChain/MinChain.csproj.
4
MinChain をビルドする (3/4)
実際のコンパイルを行う
MinChain $ dotnet build
Microsoft (R) Build Engine version 15.5.180.51428 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Restore completed in 25.13 ms for /.../MinChain/MinChain.csproj.
MinChain -> /.../bin/Debug/netcoreapp2.0/MinChain.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:04.17
5
MinChain をビルドする (4/4)
ビルドできたファイルを見る
MinChain $ cd MinChain/bin/Debug/netcoreapp2.0/
netcoreapp2.0 $ pwd
/Users/presentation/workspace/MinChain/MinChain/bin/Debug/netcoreapp2.0
netcoreapp2.0 $ ls
MinChain.deps.json
MinChain.pdb
MinChain.runtimeconfig.json
MinChain.dll
MinChain.runtimeconfig.dev.json
だいたい上記のようなディレクトリの中にビル
ド生成物があるはず
ファイルは左記の 5 つになっていると思われ
る。MinChain.dll がプログラム本体
6
3-2実行する
7
鍵を生成する
自分のアドレス用の口座を作成する
netcoreapp2.0 $ dotnet MinChain.dll genkey > key.json
netcoreapp2.0 $ cat key.json
{
"pub": "ksQgx//YjrCNkCOMmi+8s9HIr/bxF0/plW3LEUoxDQxvE57EIHSfIET426RnmqHGPErq
c+oWSdZ6iqT2RRSeNEUh81DC",
"prv": "3iM5xLsBO1znHGxEZXwMakKvGaI+dgzq2ciE0J3SC1I=",
"addr": "UeAYlm38rdMLbIT1xF4drzKy0ysmt0H24nOBSesQUh4="
}
netcoreapp2.0 $
8
Genesis ブロックを作る
key.json 記載のアドレスにマイニング報酬を送るような原始ブロックを作成し
genesis.bin に保存する。マイニングするので少し時間かかる
netcoreapp2.0 $ dotnet MinChain.dll genesis key.json genesis.bin
Creating new genesis block.
{
"id": "000bedfc98d6fbe9b8e19762b155de4318e55d9edeaaa174e18180124b2061da",
"prev": "0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": 2E-06,
"nonce": 8826148756923924145,
"timestamp": "2018-03-17T07:17:11.237183Z",
"root": "ZctR2sHk5FKtxpCQnNcPBl3a+FVQDmhiPNxEJIpF7gw=",
... (略)
Genesis なので prev が 0 になっている
9
設定ファイルを作成する (1/2)
netcoreapp2.0 $ dotnet MinChain.dll config > config.json
netcoreapp2.0 $ cat config.json
{
"listen": "0.0.0.0:9333",
"peers": [
"127.0.0.1:9333"
],
"keypair": "<YOUR OWN KEYPAIR>.json",
"genesis": "<GENESIS BLOCK>.bin",
"mining": true
}
netcoreapp2.0 $
config コマンドは、設定の雛形を生成す
るだけなので、ここのファイル名を変える
必要がある
10
設定ファイルを作成する (2/2)
前のステップで生成した鍵ペアファイル (key.json) と原始ブロック (genesis.bin) とに、
それぞれファイル名を変える
Mac:
netcoreapp2.0 $ open -a TextEdit config.json
Windows:
netcoreapp2.0 $ notepad config.json
11
起動する
うまくいけば、MinChain が起動して、同時にマイニングが開始される
netcoreapp2.0 $ dotnet MinChain.dll run config.json
dbug: MinChain.Executor[0]
Attempt to run Block:000bedf
dbug: MinChain.Executor[0]
Attempt to run TX:85ec8d4
warn: MinChain.Executor[0]
Applying Block 0:000bedf.
info: MinChain.ConnectionManager[0]
Start listening on 0.0.0.0:9333
もし何も出ずに終了する場合は、設定ファイルの記述が間違っています!
12

Weitere ähnliche Inhalte

Was ist angesagt?

HTML5-pronama-study
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-studyNaoya Inada
 
EWD 3 トレーニング・コース #1 Node.jsとGT.Mの統合方法
EWD 3トレーニング・コース #1 Node.jsとGT.Mの統合方法EWD 3トレーニング・コース #1 Node.jsとGT.Mの統合方法
EWD 3 トレーニング・コース #1 Node.jsとGT.Mの統合方法Kiyoshi Sawada
 
how to port * to BitVisor (2)
how to port * to BitVisor (2)how to port * to BitVisor (2)
how to port * to BitVisor (2)icchy
 
たのしいNode.js
たのしいNode.jsたのしいNode.js
たのしいNode.jsishiki-takai
 
Interact2017:Windows Container "Overlay" Networking
Interact2017:Windows Container "Overlay" NetworkingInteract2017:Windows Container "Overlay" Networking
Interact2017:Windows Container "Overlay" Networkingwind06106
 
後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016densan_teacher
 
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いているAkihiro Kuwano
 
Windows10でword2vecを使ってみた
Windows10でword2vecを使ってみたWindows10でword2vecを使ってみた
Windows10でword2vecを使ってみたyumi_chappy
 
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)Koki Natsume
 
【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!Keigo Ando
 
量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography
量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography
量子コンピュータと量子暗号 Quantum Computer & Quantum CryptographyKite Koga
 
Crystal on cygwin (WIP)
Crystal on cygwin (WIP)Crystal on cygwin (WIP)
Crystal on cygwin (WIP)fd0
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話leverages_event
 

Was ist angesagt? (20)

HTML5-pronama-study
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-study
 
EWD 3 トレーニング・コース #1 Node.jsとGT.Mの統合方法
EWD 3トレーニング・コース #1 Node.jsとGT.Mの統合方法EWD 3トレーニング・コース #1 Node.jsとGT.Mの統合方法
EWD 3 トレーニング・コース #1 Node.jsとGT.Mの統合方法
 
MySQL-Docker
MySQL-DockerMySQL-Docker
MySQL-Docker
 
how to port * to BitVisor (2)
how to port * to BitVisor (2)how to port * to BitVisor (2)
how to port * to BitVisor (2)
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
たのしいNode.js
たのしいNode.jsたのしいNode.js
たのしいNode.js
 
FreeBSD Capsicum
FreeBSD CapsicumFreeBSD Capsicum
FreeBSD Capsicum
 
Interact2017:Windows Container "Overlay" Networking
Interact2017:Windows Container "Overlay" NetworkingInteract2017:Windows Container "Overlay" Networking
Interact2017:Windows Container "Overlay" Networking
 
後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016
 
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
 
Start
StartStart
Start
 
Start
StartStart
Start
 
Start
StartStart
Start
 
Windows10でword2vecを使ってみた
Windows10でword2vecを使ってみたWindows10でword2vecを使ってみた
Windows10でword2vecを使ってみた
 
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)
 
【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!
 
量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography
量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography
量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography
 
Nko
NkoNko
Nko
 
Crystal on cygwin (WIP)
Crystal on cygwin (WIP)Crystal on cygwin (WIP)
Crystal on cygwin (WIP)
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
 

Ähnlich wie [Intermediate 03] MinChain - 教育用ブロックチェーンの紹介

Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
Git pyfes201207-presen
Git pyfes201207-presenGit pyfes201207-presen
Git pyfes201207-presenKouhei Maeda
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版VirtualTech Japan Inc./Begi.net Inc.
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Nobuhiro Iwamatsu
 
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島Tomoaki Shimizu
 
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kubernetes Meetup Tokyo #23 kubebuilder-v2Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kubernetes Meetup Tokyo #23 kubebuilder-v2Kazuhito Matsuda
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
DockerクイックツアーEtsuji Nakai
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
 
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFrameworkTrue Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFrameworkYoshifumi Kawai
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATETomofumi Yagi
 
Getting Started With Ore-Ore Swift Standard Library +
Getting Started With Ore-Ore Swift Standard Library +Getting Started With Ore-Ore Swift Standard Library +
Getting Started With Ore-Ore Swift Standard Library +Tomohiro Kumagai
 
Linux kernelsourcearchaeologywithgit public_20120130
Linux kernelsourcearchaeologywithgit public_20120130Linux kernelsourcearchaeologywithgit public_20120130
Linux kernelsourcearchaeologywithgit public_20120130Etsuji Nakai
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presenKouhei Maeda
 
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会Nobuyuki Tamaoki
 
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会VirtualTech Japan Inc.
 
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)NTT DATA Technology & Innovation
 

Ähnlich wie [Intermediate 03] MinChain - 教育用ブロックチェーンの紹介 (20)

Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
Git pyfes201207-presen
Git pyfes201207-presenGit pyfes201207-presen
Git pyfes201207-presen
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
 
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島
 
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kubernetes Meetup Tokyo #23 kubebuilder-v2Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kubernetes Meetup Tokyo #23 kubebuilder-v2
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFrameworkTrue Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
 
Github入門2014
Github入門2014Github入門2014
Github入門2014
 
Getting Started With Ore-Ore Swift Standard Library +
Getting Started With Ore-Ore Swift Standard Library +Getting Started With Ore-Ore Swift Standard Library +
Getting Started With Ore-Ore Swift Standard Library +
 
Linux kernelsourcearchaeologywithgit public_20120130
Linux kernelsourcearchaeologywithgit public_20120130Linux kernelsourcearchaeologywithgit public_20120130
Linux kernelsourcearchaeologywithgit public_20120130
 
Mincs 日本語版
Mincs 日本語版Mincs 日本語版
Mincs 日本語版
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presen
 
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
 
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
 
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
 

Mehr von Yuto Takei

51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーションYuto Takei
 
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門Yuto Takei
 
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦Yuto Takei
 
開発チームにおける多様性のススメ
開発チームにおける多様性のススメ開発チームにおける多様性のススメ
開発チームにおける多様性のススメYuto Takei
 
ブロックチェーン神話に迫る - 本当に使える? 使えない?
 ブロックチェーン神話に迫る - 本当に使える? 使えない? ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン神話に迫る - 本当に使える? 使えない?Yuto Takei
 
ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来Yuto Takei
 
ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用Yuto Takei
 
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加するWindows コンテナを AKS に追加する
Windows コンテナを AKS に追加するYuto Takei
 
ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討Yuto Takei
 
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーションYuto Takei
 
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub についてYuto Takei
 
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介Yuto Takei
 
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号Yuto Takei
 
[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力Yuto Takei
 
[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論Yuto Takei
 
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミングYuto Takei
 
[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析Yuto Takei
 
[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御Yuto Takei
 
[Basic 8] プロセスとスレッド / 入出力 / シェル
[Basic 8] プロセスとスレッド / 入出力 / シェル[Basic 8] プロセスとスレッド / 入出力 / シェル
[Basic 8] プロセスとスレッド / 入出力 / シェルYuto Takei
 
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理Yuto Takei
 

Mehr von Yuto Takei (20)

51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
 
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
 
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
 
開発チームにおける多様性のススメ
開発チームにおける多様性のススメ開発チームにおける多様性のススメ
開発チームにおける多様性のススメ
 
ブロックチェーン神話に迫る - 本当に使える? 使えない?
 ブロックチェーン神話に迫る - 本当に使える? 使えない? ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
 
ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来
 
ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用
 
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加するWindows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
 
ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討
 
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
 
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について
 
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
 
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
 
[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力
 
[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論
 
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
 
[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析
 
[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御
 
[Basic 8] プロセスとスレッド / 入出力 / シェル
[Basic 8] プロセスとスレッド / 入出力 / シェル[Basic 8] プロセスとスレッド / 入出力 / シェル
[Basic 8] プロセスとスレッド / 入出力 / シェル
 
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
 

Kürzlich hochgeladen

Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...oganekyokoi
 
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrKARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrRodolfFernandez1
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイントshu1108hina1020
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1Toru Oga
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 
The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.oganekyokoi
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...yutakashikano1984
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdfoganekyokoi
 

Kürzlich hochgeladen (9)

Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...
 
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrKARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 
The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdf
 

[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介

  • 1. 第3回 MinChain - 教育用ブロックチェーンの紹介 1. MinChain をビルドする 2. 実行する 1
  • 3. MinChain をビルドする (1/4) GitHub 上の MinChain のレポジトリからファイルがダウンロードし、自分のコンピュータ 上にレポジトリを作成する workspace $ git clone https://github.com/yutopio/MinChain.git Cloning into 'MinChain'... remote: Counting objects: 223, done. remote: Total 223 (delta 0), reused 0 (delta 0), pack-reused 223 Receiving objects: 100% (223/223), 43.20 KiB | 356.00 KiB/s, done. Resolving deltas: 100% (140/140), done. workspace $ cd MinChain/ MinChain $ 3
  • 4. MinChain をビルドする (2/4) Nuget と呼ばれる機能をもちいて、外部のライブラリ (ソフトウェアの集合体) をダウン ロードしてくる。依存関係の解決ともいう MinChain $ dotnet restore Restoring packages for /.../MinChain/MinChain.csproj... Generating MSBuild file /.../MinChain/obj/MinChain.csproj.nuget.g.props. Generating MSBuild file /.../MinChain/obj/MinChain.csproj.nuget.g.targets. Restore completed in 723.29 ms for /.../MinChain/MinChain.csproj. 4
  • 5. MinChain をビルドする (3/4) 実際のコンパイルを行う MinChain $ dotnet build Microsoft (R) Build Engine version 15.5.180.51428 for .NET Core Copyright (C) Microsoft Corporation. All rights reserved. Restore completed in 25.13 ms for /.../MinChain/MinChain.csproj. MinChain -> /.../bin/Debug/netcoreapp2.0/MinChain.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:04.17 5
  • 6. MinChain をビルドする (4/4) ビルドできたファイルを見る MinChain $ cd MinChain/bin/Debug/netcoreapp2.0/ netcoreapp2.0 $ pwd /Users/presentation/workspace/MinChain/MinChain/bin/Debug/netcoreapp2.0 netcoreapp2.0 $ ls MinChain.deps.json MinChain.pdb MinChain.runtimeconfig.json MinChain.dll MinChain.runtimeconfig.dev.json だいたい上記のようなディレクトリの中にビル ド生成物があるはず ファイルは左記の 5 つになっていると思われ る。MinChain.dll がプログラム本体 6
  • 8. 鍵を生成する 自分のアドレス用の口座を作成する netcoreapp2.0 $ dotnet MinChain.dll genkey > key.json netcoreapp2.0 $ cat key.json { "pub": "ksQgx//YjrCNkCOMmi+8s9HIr/bxF0/plW3LEUoxDQxvE57EIHSfIET426RnmqHGPErq c+oWSdZ6iqT2RRSeNEUh81DC", "prv": "3iM5xLsBO1znHGxEZXwMakKvGaI+dgzq2ciE0J3SC1I=", "addr": "UeAYlm38rdMLbIT1xF4drzKy0ysmt0H24nOBSesQUh4=" } netcoreapp2.0 $ 8
  • 9. Genesis ブロックを作る key.json 記載のアドレスにマイニング報酬を送るような原始ブロックを作成し genesis.bin に保存する。マイニングするので少し時間かかる netcoreapp2.0 $ dotnet MinChain.dll genesis key.json genesis.bin Creating new genesis block. { "id": "000bedfc98d6fbe9b8e19762b155de4318e55d9edeaaa174e18180124b2061da", "prev": "0000000000000000000000000000000000000000000000000000000000000000", "difficulty": 2E-06, "nonce": 8826148756923924145, "timestamp": "2018-03-17T07:17:11.237183Z", "root": "ZctR2sHk5FKtxpCQnNcPBl3a+FVQDmhiPNxEJIpF7gw=", ... (略) Genesis なので prev が 0 になっている 9
  • 10. 設定ファイルを作成する (1/2) netcoreapp2.0 $ dotnet MinChain.dll config > config.json netcoreapp2.0 $ cat config.json { "listen": "0.0.0.0:9333", "peers": [ "127.0.0.1:9333" ], "keypair": "<YOUR OWN KEYPAIR>.json", "genesis": "<GENESIS BLOCK>.bin", "mining": true } netcoreapp2.0 $ config コマンドは、設定の雛形を生成す るだけなので、ここのファイル名を変える 必要がある 10
  • 11. 設定ファイルを作成する (2/2) 前のステップで生成した鍵ペアファイル (key.json) と原始ブロック (genesis.bin) とに、 それぞれファイル名を変える Mac: netcoreapp2.0 $ open -a TextEdit config.json Windows: netcoreapp2.0 $ notepad config.json 11
  • 12. 起動する うまくいけば、MinChain が起動して、同時にマイニングが開始される netcoreapp2.0 $ dotnet MinChain.dll run config.json dbug: MinChain.Executor[0] Attempt to run Block:000bedf dbug: MinChain.Executor[0] Attempt to run TX:85ec8d4 warn: MinChain.Executor[0] Applying Block 0:000bedf. info: MinChain.ConnectionManager[0] Start listening on 0.0.0.0:9333 もし何も出ずに終了する場合は、設定ファイルの記述が間違っています! 12