明日になったら「teamsで、Azure blockchain serviceで構築したetheriumのwalletに保管されているコインのやり取りしてみた」っていうアドカレ用の記事できてないかな〜〜〜







## なぜ
- 社内になんとなく「blockchain使おうぜ！」というムーブがある（僕より詳しい人は何人もいます、念の為）
- 去年Azure Blockchain Workbenchのレクチャーに参加したことがあった
- teamsから操作できたらいいなあ〜と思って調べ始めた
- 今のところ触ってみただけになりそう

## なに
### そもそもblockchainとは
  - >Blockchain technology is designed to facilitate the transfer of digital goods (like money) without the need for any middlemen (like banks). One characteristic commonly mentioned as a benefit to the blockchain is that it “gets rid of the middleman.”
    - https://education.district0x.io/general-topics/understanding-the-blockchain/introduction/
    - 中間者のいない電子情報・財のやりとりとみた！
    - 多分僕はここから始めるべきだ
  - https://qiita.com/yokoji/items/9bcffc3030b467bc4874


### etheriumとは
- azure blockchain serviceはイーサリウムベースの何かです
- マジで何を言ってるのかわからない。ブロックチェーンの種類とみた！
  - https://ethereum.org/ja/learn/#how-ethereum-works
- evm
  - evmという環境でwallet（超訳：財布）が動くらしい
    - http://www.intellilink.co.jp/article/column/ethereum03.html

### solidityとは
  - ethereumの開発言語
    - java/javascriptっぽいやつです。見慣れた感じですが「address」とか「contract」とか見知らぬ概念がある
  - https://solidity-jp.readthedocs.io/ja/latest/index.html
  - https://solidity-jp.readthedocs.io/ja/latest/introduction-to-smart-contracts.html#simple-smart-contract
  - 学習サイト
    - https://ethereum.org/ja/learn/#ethereum-basics
    - 多分僕はここから始めるべきだ


### web3.js
- このライブラリ経由でwalletを操作できるみたい
  - https://qiita.com/kolife/items/d936d4aa6cdd23ff65b4
- だからwalletを操作するAPIとかはjsで書いた方が良さそう
### Azure blockchain workbenchとは
>アプリケーション開発に必要なクラウド サービスへの統合が事前になされているため、開発に要する時間とコストが削減されます。ブロックチェーン ID を Azure Active Directory に関連付けることで、サインインとコラボレーションが容易になります。Azure Key Vault を使用して秘密キーを安全に格納します。スマート コントラクトをトリガーするうえで必要なメッセージとイベントは、Service Bus と Event Hubs を使って取り込みます。署名、ハッシュ、ルーティングを行うための各ツールによって、メッセージは、ブロックチェーンのネイティブ API に必要な形式へと変換されます。
- よしなにやってくれるテンプレートと見た（ソコソコの量のインスタンスが立つ）
- <img width="1315" alt="az_rg_created.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269736/276ef460-1fa5-b436-96cd-c4128dd8fe8f.png">


## どうやって
### Azure環境構築
- azure blockchain service
    - チュートリアル
    - デプロイ
        - https://docs.microsoft.com/ja-jp/azure/blockchain/workbench/deploy
    - 作成
        - https://docs.microsoft.com/ja-jp/azure/blockchain/workbench/create-app
        - <img width="946" alt="rg_creation_summary.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269736/ad23ea43-39ef-e8de-7dab-09d3bee1c299.png">
    - 構成ファイルの書き方
        - https://docs.microsoft.com/ja-jp/azure/blockchain/workbench/configuration
- AD
  - テナントはディフォルトを使用
  - script実行し登録
    - <img width="1316" alt="ad_registration_azcommand.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269736/bd504de9-03d2-fea7-89e1-236ec8dc53a1.png">
  - アプリケーションの登録
- graph APIとか触っている人にはいつものやつです。
```
"appRoles": [
  {
    "allowedMemberTypes": [
      "User",
      "Application"
    ],
    "displayName": "Administrator",
    "id": "****************",
    "isEnabled": true,
    "description": "Blockchain Workbench administrator role allows creation of applications, user to role assignments, etc.",
    "value": "Administrator"
  }
],
```

## どうなった
  - とりあえずアプリの画面を表示
  - いくつかの自分のアカウントをかきあつめてADに登録
  - 作成したconfigのjsonとsolファイルをアップロード
  - いくつかの自分のアカウントを招待
  - なんかチュートリアルはできた
    - <img width="1380" alt="app_demo_result.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269736/14a6d129-adc2-d312-c029-ba23fa3b92c6.png">
  - **遅めのリアクティブなWEBアプリの完成！！**


## 今後
- 4日で３０００円かかってるので止めます
  - これ以上動かし続けると、僕の**オリコカード**では耐えられません。
  - <img width="1273" alt="cost_for_fourdays.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269736/2c74f187-4824-c0af-a050-f73311582918.png">
- 外からから呼び出すAPIの口があるよう
  - ユーザーとして、アクションを実行できる
- EVMをいっぱい作るテンプレートがあるらしい
  - [[Deploy Ethereum proof-of-authority consortium solution template on Azure:https://docs.microsoft.com/en-us/azure/blockchain/templates/ethereum-poa-deployment]]
  - それでweb3.jsで書けば中間者のいない（改竄できない）お金のやり取りできるかも
  - えぐい量のVM立ちそう、、、
    - ![deployment-architecture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269736/c1abff6c-8773-9375-297f-1e85efe7827b.png)
    - 

## 先人の方たち
- Azure Blockchain WorkbenchでHello Blockchain!
  - https://qiita.com/shingo_kawahara/items/6acceac42ec2701bf336
  - 2019/05
- Azure Blockchain Serviceを試してみる1（チェーン構築編）
  - https://qiita.com/hayago/items/60f6e71b6cba1def9006
  - 2019/09
- 年末年始休みに、Azure ブロックチェーン を完全に理解する！
  - https://qiita.com/yuhattor/items/225414df8fc8e22d3292
  - 2018/12