Submit Search
Upload
C# でブロックチェーン実装
•
5 likes
•
7,179 views
Yuto Takei
Follow
2017/3/11 C# ユーザー会 Visual Studio 2017 リリース記念勉強会 https://csugjp.connpass.com/event/50930/
Read less
Read more
Software
Report
Share
Report
Share
1 of 28
Download now
Download to read offline
Recommended
WebRTCの技術解説 公開版
WebRTCの技術解説 公開版
Contest Ntt-west
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
日本語テストメソッドについて
日本語テストメソッドについて
kumake
Recommended
WebRTCの技術解説 公開版
WebRTCの技術解説 公開版
Contest Ntt-west
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
日本語テストメソッドについて
日本語テストメソッドについて
kumake
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
TylerShukert
フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察
cch-robo
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
Kazuto Kusama
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
さるでも分かりたい9dofで作るクォータニオン姿勢
さるでも分かりたい9dofで作るクォータニオン姿勢
ytanno
目grep入門 +解説
目grep入門 +解説
murachue
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
More Related Content
What's hot
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
TylerShukert
フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察
cch-robo
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
Kazuto Kusama
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
さるでも分かりたい9dofで作るクォータニオン姿勢
さるでも分かりたい9dofで作るクォータニオン姿勢
ytanno
目grep入門 +解説
目grep入門 +解説
murachue
What's hot
(20)
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
DockerコンテナでGitを使う
DockerコンテナでGitを使う
暗号技術の実装と数学
暗号技術の実装と数学
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
さるでも分かりたい9dofで作るクォータニオン姿勢
さるでも分かりたい9dofで作るクォータニオン姿勢
目grep入門 +解説
目grep入門 +解説
Similar to C# でブロックチェーン実装
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
Takeshi Fukuhara
.NET Coreとツール類の今
.NET Coreとツール類の今
Yuki Igarashi
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
bitbank, Inc. Tokyo, Japan
build 2012 Windows Azure 的まとめ
build 2012 Windows Azure 的まとめ
Sunao Tomita
20201009 hccjp ignite_update_hybrid
20201009 hccjp ignite_update_hybrid
Osamu Takazoe
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
Kubernetes1.9でWindowsコンテナーをクラスタ化
Kubernetes1.9でWindowsコンテナーをクラスタ化
Takashi Kanai
Android Studioの魅力
Android Studioの魅力
Keiji Ariyama
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
Modernization of IT Infrastructure by Microsoft Azure
Modernization of IT Infrastructure by Microsoft Azure
Takeshi Fukuhara
LEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 API
Akira Hatsune
プライベートクラウド作ってみました
プライベートクラウド作ってみました
Koji Hasebe
Cocos2d-xハンズオンセミナー
Cocos2d-xハンズオンセミナー
Chukong Technologies Japan
Kinectプログラミング Step by Step
Kinectプログラミング Step by Step
Akira Hatsune
KinectプログラミングStepByStep
KinectプログラミングStepByStep
信之 岩永
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Tomokazu Kizawa
Similar to C# でブロックチェーン実装
(20)
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
.NET Coreとツール類の今
.NET Coreとツール類の今
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
build 2012 Windows Azure 的まとめ
build 2012 Windows Azure 的まとめ
20201009 hccjp ignite_update_hybrid
20201009 hccjp ignite_update_hybrid
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
Kubernetes1.9でWindowsコンテナーをクラスタ化
Kubernetes1.9でWindowsコンテナーをクラスタ化
Android Studioの魅力
Android Studioの魅力
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Modernization of IT Infrastructure by Microsoft Azure
Modernization of IT Infrastructure by Microsoft Azure
LEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 API
プライベートクラウド作ってみました
プライベートクラウド作ってみました
Cocos2d-xハンズオンセミナー
Cocos2d-xハンズオンセミナー
Kinectプログラミング Step by Step
Kinectプログラミング Step by Step
KinectプログラミングStepByStep
KinectプログラミングStepByStep
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
More from Yuto Takei
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
Yuto Takei
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
Yuto Takei
開発チームにおける多様性のススメ
開発チームにおける多様性のススメ
Yuto Takei
ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
Yuto Takei
ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来
Yuto Takei
ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用
Yuto Takei
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
Yuto Takei
ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討
Yuto Takei
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 04] ブロックチェーンの動作原理
Yuto Takei
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
Yuto Takei
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について
Yuto Takei
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
Yuto Takei
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
Yuto Takei
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
Yuto Takei
[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力
Yuto Takei
[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論
Yuto Takei
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
Yuto Takei
[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析
Yuto Takei
More from Yuto Takei
(20)
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
開発チームにおける多様性のススメ
開発チームにおける多様性のススメ
ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来
ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力
[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析
C# でブロックチェーン実装
1.
C# でブロックチェーン実装 竹井 悠人 ソフトウェア
エンジニア 株式会社 bitFlyer
2.
免責 このトークは、情報提供のみを目的として行われており、正確性・最新性についての保 障は一切ありません。内容は、会社の見解ではありません。この情報を元にして生じた 不利益について、当社およびスピーカは一切の責任を負いません。 bitFlyer 上での取引についての詳細は、当社カスタマ サポートへお問い合わせくださ い。
3.
開発に参加する人むけに必要な具材 ● .NET Core
SDK 今日使うコードベースは.NET Core 向けに書かれていますゆえ https://www.microsoft.com/net/download/core (.NET Core でググると出てくると思います) ● MinChain リポジトリ 以下のリポジトリのソースコードをネタに解説を進めます https://github.com/yutopio/MinChain プルリク歓迎します ● スライド http://bit.ly/2nfyb7z
4.
自己紹介 Yuto Takei Software Engineer
ここに何か面白いこと書く BTC 送金お待ちしております
5.
本日の話の構成 ● bitFlyer での
C# ● MinChain の構成について ● うごかしてみる
6.
bitFlyer について ● ビットコインの取引所を運営 ●
ブロックチェーン関連の研究調査プロダクトの提供 ● 事例紹介 https://blogs.technet.microsoft.com/mpn_japan/2016/ 02/16/partner-showcase-bitflyer/
7.
8.
システム構成 Redis Cache ● 口座画面
/ 販売所 ● Lightning ● chainFlyer ● マーケット処理 ● 取引約定 ● バッチ処理 Web Apps Worker Roles SQL Server Web Roles ● fundFlyer ● BTC News ● セッション管理 Storage Queue バックアップへ
9.
クラウドならではのこと 3/8 (水) 夜
(JST) に Azure で障害が起きた際も、 東日本 → 西日本のマイグレーションで2 時間弱ほどで復旧
10.
クラウドならではのこと 3/8 (水) 夜
(JST) に Azure で障害が起きた際も、 東日本 → 西日本のマイグレーションで2 時間弱ほどで復旧
11.
bitFlyer からのトランザクションの流れ bitFlyer で作られた トランザクション Bitcoin
Core (bitcoind) クライアント おそとの 世界
12.
すぐに .NET Core
に行けるの? YES!!
13.
暗号面での強い味方 ● Bouncy Castle
PCL https://www.nuget.org/packages/Portable.BouncyCastle/ System.Security.Cryptography 名前空間下の実装を行う強い味方 ● たとえば Bitcoin でアドレス生成に使うハッシュ関数 .NET Fx : System.Security.Cryptography.RIPEMD160 .NET Core : なし BC PCL : Org.BouncyCastle.Crypto.Digests.RipeMD160Digest
14.
I Can Has
.NET Core .NET Core へ移行可能か 調べることができる https://icanhasdot.net/
15.
MinChain について
16.
全体の機能相関図 Executor Mining KeyGenerator Config Genesis ツール群 InventoryManagerConnectionManager 解釈前のブロック保持 Memory Pool 保持 InventoryMessage
処理 Executor ブロック通知 Listener 新規接続待ち受け Peer 一覧を保持 特定ピアへの送信 ブロードキャスト Message 受信コールバック 実行済みブロック保持 UTXO の追跡 未実行ブロック一覧保持 ブロック適用/ 取消 Runner 各モジュールの 初期化 / 終了 Program エントリ ポイント コマンド振り分け
17.
GitHub においてあります https://github.com/yutopio/MinChain MIT ライセンスなので、煮るなり焼くなり、プルリク送るなりしてください
18.
動かしてみましょう
19.
ビルドする .NET Core SDK
が必要です https://www.microsoft.com/net/download/core VS2017 ユーザは .NET Core tools を入れれば VS からビルドできるようになります
20.
ビルドする $ dotnet restore
(依存する Nuget パッケージの取得) Restoring packages for D:MinChainMinChainMinChain.csproj... Generating MSBuild file D:MinChainMinChainobjMinChain.csproj.nuget.g.props. Generating MSBuild file D:MinChainMinChainobjMinChain.csproj.nuget.g.targets. Writing lock file to disk. Path: D:MinChainMinChainobjproject.assets.json Restore completed in 946.64 ms for D:MinChainMinChainMinChain.csproj. NuGet Config files used: C:UsersyutoAppDataRoamingNuGetNuGet.Config C:Program Files (x86)NuGetConfigMicrosoft.VisualStudio.Offline.config Feeds used: https://api.nuget.org/v3/index.json C:Program Files (x86)Microsoft SDKsNuGetPackages
21.
ビルドする $ dotnet build
(ビルドする) Microsoft (R) Build Engine version 15.1.548.43366 Copyright (C) Microsoft Corporation. All rights reserved. MinChain -> D:MinChainMinChainbinDebugnetcoreapp1.0MinChain.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:03.00
22.
鍵を生成する ビルドしたバイナリがいるディレクトリに移動して実行 $ dotnet MinChain.dll
genkey > key.json (自分のアドレス用の口座を作成する) $ cat key.json { "pub": "WAAAAAEAAAAQAAAANAAAACAAAAAEj0MOwNeLA9b4gXYbURcyF5c8YPtZekJcliWafKduNy AAAAACMFgRiBxSiu3wB3/g3biz9UN8zvNGI2n/HIg88EVn8A==", "prv": "D4TuwVREhf5T3GTs4Y1psaUoHHKy3hb4gllunB2x5l8=", "addr": "MDyDMxi1ynxe1206ANBRXWOjP7o/IeQHakRDilyYrtI=" }
23.
Genesis ブロックを作る (自分のチェーンを作る場合。今回は行いません!) $ dotnet
MinChain.dll genesis key.json genesis.bin Creating new genesis block. { "id": "00011702146098209132fa4990686f41f3e6b9859c607c1e5c93c0204ff9d8ec", "prev": "0000000000000000000000000000000000000000000000000000000000000000", "difficulty": 2E-05, "nonce": 2538555750346862341, "timestamp": "2017-03-10T09:20:20.2375851Z", "root": "DS5gHGHSJh0f5qmxgk2PDuI6a7J4LZ7pfy3K6JorH8U=", "height": 0, "txs": [ { "id": "e44e859fe93bf48652b2dfc2386d987e544940f768379779da631fcd7206ac66", "timestamp": "2017-03-10T09:20:19.5205851Z", "in": [], "out": [ { "to": "303c833318b5ca7c5ed76d3a00d0515d63a33fba3f21e4076a44438a5c98aed2", "val": 1000000 } ... (略) key.json 記載のアドレスに マイニング報酬を送るような 原始ブロックを作成し genesis.bin に保存する マイニングするので 少し時間かかる
24.
config を作成する (デフォルト config
を生成できる。今回は行いません!) $ dotnet MinChain.dll config > config.json $ cat config.json { "listen": "0.0.0.0:9333", "peers": [ "127.0.0.1:9333" ], "keypair": "<YOUR OWN KEYPAIR>.json", "genesis": "<GENESIS BLOCK>.bin" } 前のステップで生成した 鍵ペアファイル (key.json) と 原始ブロック (genesis.bin) とに それぞれ、ファイル名を変える
25.
起動する $ dotnet MinChain.dll
run config.json うまくいけば、本日のデモ用のサーバにつながり、 マイニングが始まります! … どきどき
26.
まとめ
27.
Blockchain by C# ●
やっと安定したマルチ プラットフォーム対応! ○ 暗号系ライブラリなども揃っている ○ ソースが見える安心感 ○ Bitcoin Core などとの高い運用性 ● ブロックチェーンの実装が C# + .NET Core でできた! ○ 基本的なところはほぼ外部依存なし ○ Azure にデプロイして、Mac および Linux でも動きました! ● エンジニア募集中
28.
一緒にブロックチェーンを紡ぎましょう Miyabi チームでは C#
で Blockchain が作れます!
Download now