블록체인 기술이 지속적으로 발전함에 따라 점점 더 많은 기업과 조직이 이 기술을 이해하고 적용하기 시작했습니다. 매우 중요한 애플리케이션 시나리오 중 하나는 블록체인 추적성입니다.
블록체인 추적성은 블록체인 기술을 사용하여 상품이나 자산의 원산지부터 소비지까지의 전체 과정과 그것이 통과하는 모든 링크를 추적하는 것을 의미합니다. 이 방법을 사용하면 상품의 투명성과 신뢰도를 크게 높일 수 있으며, 상품 사기와 불량품의 유통을 방지할 수 있습니다.
이 기사에서는 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);
The 위의 코드는 스마트 계약에 배치 추가를 나타냅니다. 배치 번호는 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!