Submit Search
Upload
C# でブロックチェーン実装
•
5 likes
•
7,191 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
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
Molecule入門
Molecule入門
Hiroki Uchida
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
Keycloak入門
Keycloak入門
Hiroyuki Wada
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
Recommended
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
Molecule入門
Molecule入門
Hiroki Uchida
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
Keycloak入門
Keycloak入門
Hiroyuki Wada
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!
zaki4649
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
Eiji KOMINAMI
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
Yuta Imai
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
Takanori Sejima
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
Keycloakのステップアップ認証について
Keycloakのステップアップ認証について
Hitachi, Ltd. OSS Solution Center.
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Hiroshi Tokumaru
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
Shinichi Tomita
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
Resilience Engineering on Kubernetes
Resilience Engineering on Kubernetes
Toru Makabe
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
Takayuki Shimizukawa
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
Amazon Web Services Japan
Keycloakの紹介と最新開発動向
Keycloakの紹介と最新開発動向
Yuichi Nakamura
Ansibleの最近の動向を追ってみた
Ansibleの最近の動向を追ってみた
KeijiUehata1
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
Kuniyasu Suzaki
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
Kamon Nobuchika
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
Noriyoshi Shinoda
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
flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!
zaki4649
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
Eiji KOMINAMI
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
Yuta Imai
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
Takanori Sejima
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
Keycloakのステップアップ認証について
Keycloakのステップアップ認証について
Hitachi, Ltd. OSS Solution Center.
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Hiroshi Tokumaru
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
Shinichi Tomita
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
Resilience Engineering on Kubernetes
Resilience Engineering on Kubernetes
Toru Makabe
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
Takayuki Shimizukawa
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
Amazon Web Services Japan
Keycloakの紹介と最新開発動向
Keycloakの紹介と最新開発動向
Yuichi Nakamura
Ansibleの最近の動向を追ってみた
Ansibleの最近の動向を追ってみた
KeijiUehata1
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
Kuniyasu Suzaki
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
Kamon Nobuchika
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
Noriyoshi Shinoda
What's hot
(20)
flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
Keycloak拡張入門
Keycloak拡張入門
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Keycloakのステップアップ認証について
Keycloakのステップアップ認証について
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
レシピの作り方入門
レシピの作り方入門
Resilience Engineering on Kubernetes
Resilience Engineering on Kubernetes
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
Keycloakの紹介と最新開発動向
Keycloakの紹介と最新開発動向
Ansibleの最近の動向を追ってみた
Ansibleの最近の動向を追ってみた
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
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