Hyperledgerを使用してブロックチェーン上にアプリケーションを作成する方法

UnsplashのSashaによる写真

Hyperledger Composerを使用してデジタルバンクを構築します。顧客とアカウントがあります。最後に、資金を転送し、すべてのトランザクションをブロックチェーンに記録できるようになります。同じためにRESTful APIを公開するので、ブロックチェーンが何であるかわからない人でも、その周りに美しいユーザーインターフェース(UI)を作成できます。また、このアプリケーションのUIをAngularで作成します。

この段階的なガイドを皆さんと共有できることを非常に嬉しく思います。すぐに始めましょう!

ソース:https://giphy.com/explore/excited

これを最初にコーディングしたときに、エラーが発生しました。たくさんあります。しかし、それは良いことだと思います。なぜなら、多くのことを学ぶようになったからです。エラーは不可欠です。オンとオフを切り替えると物事が良くなると感じるようになりました。それはほとんど私の心を失いましたが、それはすべてのハッカーの人生に不可欠な部分です。

始める前に、使用しているマシンに必要な構成が備わっていることを確認する必要があります。特定の前提条件をダウンロードし、基本的な開発環境をセットアップする必要がある場合があります。以下はそのためのリンクです。アプリケーションの開発を開始する前にこれらの手順に従ってください。そうしないと、間違いなく愚かなエラーが発生します。

最初にHyperledger composerをインストールします。次に、開発環境をインストールします。

環境のインストール中にPlaygroundを起動する必要はありません。

Dockerが実行されていることを確認します。./startFabric.shを実行すると、数分かかります。我慢してください。

これでマシンがすべて設定されたので、コーディングを開始できます!

ソース:http://www.forthebrokenhearted.net/170254395/4208888/posting/

ステップ1:ビジネスネットワークの概要を説明する

ビジネスネットワーク定義(BND)は、データモデル、トランザクションロジック、およびアクセス制御ルールで構成されています。データモデルとアクセス制御ルールは、ドメイン固有の言語でコーディングされています(追いつくのは非常に簡単です)。トランザクションロジックはJavaScriptでコーディングされます。

BNDを作成するには、ディスク上に適切なプロジェクト構造を作成する必要があります。 Yeomanを使用してスケルトンビジネスネットワークを作成します。プロジェクト構造を作成するには、ターミナルを開き、次のコマンドを実行します。

$ yo hyperledger-composer

これにより、次の一連の質問が発生します。矢印キーを使用して回答をナビゲートする必要があります。

お気に入りのテキストエディタでこのプロジェクトを開きます。 Visual Codeを使用しています。ファイル構造は次のようになります。

test / logic.jsの内容を削除します。現時点では使用しません。

ステップ2.1:ビジネスネットワーク(models / test.cto)のコーディング

まず、models / test.ctoを定義します。ビジネスネットワーク内のすべての資産、参加者、およびトランザクションのクラス定義が含まれています。このファイルはHyperledger Composer Modeling Languageで記述されています。

名前空間テスト
accountIdで識別されるアセットアカウント{
o文字列accountId
->顧客の所有者
oダブルバランス
}
customerId {で識別される参加者の顧客
o文字列customerId
o文字列firstName
o文字列lastName
}
トランザクションAccountTransfer {
->アカウントから
->アカウントへ
o倍額
}

アカウントはaccountIdで一意に識別されるアセットです。各アカウントは、アカウントの所有者である顧客とリンクされています。アカウントには、そのアカウントが現在保有している金額を示すバランスのプロパティがあります。

顧客は、customerIdで一意に識別される参加者です。各顧客には、firstNameとlastNameがあります。

AccountTransferは、アカウントとの間で発生する可能性のあるトランザクションです。そして、どのくらいのお金が送金されるかは量で保存されます。

ステップ2.2:ビジネスネットワーク(lib / logic.js)のコーディング

このファイルでは、JavaScriptでトランザクションロジックを追加します。

/ **
*サンプルトランザクション
* @param {test.AccountTransfer} accountTransfer
* @transaction
* /
関数accountTransfer(accountTransfer){
if(accountTransfer.from.balance 
accountTransfer.from.balance-= accountTransfer.amount;
accountTransfer.to.balance + = accountTransfer.amount;
getAssetRegistry( 'test.Account')を返します
.then(関数(assetRegistry){
return assetRegistry.update(accountTransfer.from);
})
.then(関数(){
return getAssetRegistry( 'test.Account');
})
.then(function(assetRegistry){
return assetRegistry.update(accountTransfer.to);
});
}

@param {test.AccountTransfer} accountTransferは、トランザクションをJavaScript関数にリンクするためにファイルの先頭に配置するデコレーターです。次に、資金がある口座に十分なお金があるかどうかを検証します。そうでない場合、エラーがスローされます。次に、アカウントの残高に対して基本的な加算と減算を実行します。

この時点で、最も重要なステップはブロックチェーンでこれを更新することです。これを行うには、資産であるAccountのgetAssetRegistry APIを呼び出します。次に、資金を寄付する口座と資金を受け取る口座の両方について、取得したassetRegistryを更新します。

ステップ3:ビジネスネットワークアーカイブ(BNA)を生成する

ビジネスネットワークが定義されたので、展開可能なビジネスネットワークアーカイブ(.bna)ファイルにパッケージ化する必要があります。

ステップ3.1:ターミナルのテストバンクアプリに移動します。

ステップ3.2:次のコマンドを実行します。

$ composer archive create -t​​ dir -n。

これにより、test-bankフォルダーに.bnaファイルが作成されます。

ステップ4:ビジネスネットワークアーカイブファイルをファブリックに展開する

ステップ4.1:composerランタイムをインストールする

$ composer runtime install --card PeerAdmin @ hlfv1 --businessNetworkName test-bank

ステップ4.2:ビジネスネットワークを展開する

$ composer network start --card PeerAdmin @ hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw --archiveFile test-bank@0.0.1.bna --file networkadmin.card

(テストバンクフォルダーにいることを確認してください)。

ステップ4.3:ネットワーク管理者IDを使用可能なビジネスネットワークカードとしてインポートする

$ composer card import --file networkadmin.card

ステップ4.4:ビジネスネットワークが正常に展開されたことを確認するには、次のコマンドを実行してネットワークをpingします。

$ composer network ping --card admin @ test-bank

ステップ5:RESTful APIを公開する

コマンドラインからRESTful APIを作成するには、次のコマンドを実行します。

$ composer-rest-server

これは多くの質問を投げかけます。

ブラウザでhttp:// localhost:3000 / explorerを指定します。

美しいブロックチェーンAPIが表示されます。

2人の顧客を追加しましょう。

まず、Niharika Singhという名前の顧客を追加しましょう。

200応答コードを取得します。

次に、同様の方法でTvesha Singhという名前の顧客を追加します。

正しく追加したかどうかを確認するには、GETしてください。

応答本文に2人の顧客が表示されます。

次に、これら2人の顧客にリンクされた2つのアカウントを追加します。

この方法でアカウントを追加します。次に、GETして、正しく追加したかどうかを確認します。

次に、ニハリカからトヴェシャに75を転送します。

アカウント情報を取得して、残高が更新されているかどうかを確認しましょう。

ビオラ!できます。ニハリカは現在25人、トヴェシャは125人です。

ステップ6:角度付きフロントエンド

Angular scaffoldingを自動的に作成するには、test-bankフォルダーで次のコマンドを実行します。

ヨーヨー

これは複数の質問をします。

そして、数分かかります。

bank-appに移動します。

$ npm start

これにより、Angularサーバーが起動します。

Angularファイル構造は次のように作成されます。

ブラウザでhttp:// localhost:4200を指定します。それは魔法が起こっている場所です!次の画面が表示されます。

次に、右上隅の[資産]に移動し、[アカウント]をクリックします。

これらは、作成した正確なアカウントです。

これで、これをいじることができます。

フロントエンドとバックエンドの準備ができました!

localhost:3000で発生するすべてのトランザクションは、localhost:4200に反映され、その逆も同様です。そして、これはすべてブロックチェーン上にあります。

ソース:https://giphy.com/explore/thats-how-its-done

最近、ブロックチェーンのユースケースに関する記事を書きました。約20のアイデアをリストして説明しました。ここにあります:

ビジネスアイデアをお持ちで、技術やアーキテクチャの詳細を具体的に伝えたい場合は、niharika.3297 @ gmail.comまでお気軽にご連絡ください。