ブロックチェーン技術の継続的な開発により、ますます多くの企業や組織がこの技術を理解し、適用し始めています。非常に重要なアプリケーション シナリオの 1 つは、ブロックチェーンのトレーサビリティです。
ブロックチェーンのトレーサビリティとは、ブロックチェーン技術を使用して、商品や資産の原産地から消費地までのプロセス全体と、それが通過するすべてのリンクを追跡することを指します。この方法により、商品の透明性と信頼性が大幅に向上し、商品詐欺や粗悪品の流通を防ぐことができます。
この記事では、PHP でブロックチェーンのトレーサビリティを実装する方法について説明します。
1. ブロックチェーン ネットワークを確立する
まず、ブロックチェーン ネットワークを確立する必要があります。パブリック チェーン上に独自のブロックチェーンを構築することも、プライベート チェーンを構築することも選択できます。ここではプライベート チェーンを構築することを選択します。
Hyperledger Fabric を使用して独自のプライベート チェーンを構築できます。 Hyperledger Fabric は、さまざまなエンタープライズ レベルのブロックチェーン ソリューションの構築に役立つオープン ソース プラットフォームです。 Hyperledger Fabric プラットフォームはプログラム可能であるため、さまざまなプログラミング言語を使用してスマート コントラクトを作成できることは言及する価値があります。
2. スマート コントラクトの作成
スマート コントラクトは、ブロックチェーンにカプセル化されたコンピューター プログラムです。スマートコントラクトを通じて、製品の製造元、バッチ番号、製造日、輸送業者などの情報を定義し、記録することができます。同時に、スマート コントラクトはこの情報を暗号化してデータのセキュリティを確保します。
PHP では、Hyperledger Fabric が提供する SDK を使用してスマート コントラクトを呼び出すことができます。まず、コードに SDK をインポートする必要があります:
require_once(__DIR__ . '/vendor/autoload.php'); use HyperledgerFabricClient; use HyperledgerFabricPeer; use HyperledgerFabricChaincode; use HyperledgerFabricTransaction;
次に、Hyperledger Fabric ネットワークに接続する必要があります:
$client = new Client(); $client->addPeer(new Peer('grpc://localhost:7051')); $client->setChaincode(new Chaincode('my_chaincode', $client)); $client->open();
これで、スマート コントラクトのいくつかの操作を定義できるようになります。バッチを追加する場合:
$tx = new Transaction(); $tx->setArgs(['batch001', 'producer001', '2021-01-01']); $client->chaincode()->invoke('addBatch', $tx);
上記のコードは、スマート コントラクトにバッチを追加することを示しています。バッチ番号は「batch001」、「Producer001」によって生成され、生成日は「2021-01-01」です。
3. スマート コントラクトを呼び出す
バッチ情報がスマート コントラクトに追加されると、バッチ番号を通じてバッチの生産情報をクエリできます。前のコードと同様に、Hyperledger Fabric の SDK を使用してバッチ情報をクエリできます。
$tx = new Transaction(); $tx->setArgs(['batch001']); $result = $client->chaincode()->query('queryBatch', $tx); $batch_info = json_decode($result, true); //将结果解析为JSON格式
このコードでは、バッチ番号「batch001」を通じてバッチ情報をクエリし、返される結果は JSON の文字列です。解析する必要がある形式。
4. 結果の表示
最後に、HTML と CSS を使用してトレーサビリティの結果を表示できます。ここではコードの一部のみを示していますが、詳細なコードは自分で書くことができます。
<h1>Product Batch Info</h1> <table> <tr><td>Batch ID:</td><td><?= $batch_info['BatchID'] ?></td></tr> <tr><td>Producer:</td><td><?= $batch_info['Producer'] ?></td></tr> <tr><td>Production Date:</td><td><?= $batch_info['ProductionDate'] ?></td></tr> <!-- 其他信息 --> </table>
上記のコードは、HTML と CSS を使用して、バッチ番号、製造元などのバッチ情報の基本属性を表示します。また、輸送ルートや飼育環境など、より多くの情報表示を追加することができます。
概要
上記は、PHP でブロックチェーン トレーサビリティを実装する基本的な方法です。データのセキュリティを確保するには、データの恣意的な変更を避けるためにスマート コントラクトへのアクセスを厳しく制限する必要があることに注意してください。同時に、同時実行性の高いシナリオでの接続の遅さやクラッシュなどの問題を回避するために、スマート コントラクトのパフォーマンスの問題にも注意を払う必要があります。
以上がPHP でブロックチェーンのトレーサビリティを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。