americanexpress/hyperledger-fabric-sdk-php

PHP Hyperledger Fabric客户端SDK

0.1.1 2017-12-09 00:13 UTC

This package is not auto-updated.

Last update: 2024-09-20 03:39:54 UTC


README

Build Status Coverage Status Scrutinizer Code Quality

Hyperledger Fabric客户端SDK for PHP

欢迎使用Hyperledger项目PHP SDK。此SDK的主要目标是方便客户端执行基本的链码相关操作,如:创建通道、安装和访问链码等。

注意,fabric-sdk-php是一个独立客户端界面,用于访问运行中的区块链网络的网络信息和账本数据,不能用作应用定义通道数据的持久介质。

安装

composer require americanexpress/hyperledger-fabric-sdk-php

使用

以下是一些高级且简短的代码片段,展示如何与此SDK交互。

Channel::queryByChaincode

查询第一个组织中的第一个节点(默认行为)

$config = new \AmericanExpress\HyperledgerFabricClient\Config\ClientConfig([
    // See `test/integration/config.php` for an example.
]);
$response = \AmericanExpress\HyperledgerFabricClient\Client\ClientFactory::fromConfig($config)
    ->getChannel('foo')
    ->getChaincode('example_cc')
    ->invoke('query', 'a');

查询特定组织

$config = new \AmericanExpress\HyperledgerFabricClient\Config\ClientConfig([
    // See `test/integration/config.php` for an example.
]);
$response = \AmericanExpress\HyperledgerFabricClient\Client\ClientFactory::fromConfig($config, 'peerOrg1')
    ->getChannel('foo')
    ->getChaincode('example_cc')
    ->invoke('query', 'a');

查询特定组织和节点

$config = new \AmericanExpress\HyperledgerFabricClient\Config\ClientConfig([
    // See `test/integration/config.php` for an example.
]);
$options = new \AmericanExpress\HyperledgerFabricClient\Transaction\TransactionOptions([
    'peer' => 'peer1',
]);
$response = \AmericanExpress\HyperledgerFabricClient\Client\ClientFactory::fromConfig($config, 'peerOrg1')
    ->getChannel('foo')
    ->getChaincode('example_cc')
    ->invoke('query', 'a', $options);

通过路径和版本查询链码

$config = new \AmericanExpress\HyperledgerFabricClient\Config\ClientConfig([
    // See `test/integration/config.php` for an example.
]);
$response = \AmericanExpress\HyperledgerFabricClient\Client\ClientFactory::fromConfig($config)
    ->getChannel('foo')
    ->getChaincode(['name' => 'example_cc', 'version' => '1', 'path' => 'github.com/example_cc'])
    ->invoke('query', 'a');

阶段1

  • 对于阶段1,我们提供客户端访问基本链码操作,如通过链码查询。
  • 假设我们有一个运行中的区块链网络,其中有一个预定义的通道和已安装的链码。
  • 提供了一个预定义脚本,根据测试用例启动测试网络。

阶段2(即将推出)

  • 在下一个版本中,我们将添加更多链码操作,如创建通道、调用和安装等。

Fabric和Fabric-ca的最新构建版本v1.1.0

Hyperledger Fabric v1.1.0目前正在积极开发中。

您可以通过访问Hyperledger仓库来克隆这些项目。

先决条件

Docker版本 ^17.0

检查Docker版本

docker --version

PHP版本 ^7.1

检查PHP版本

php --version

PHP GMP扩展

检查php.ini中的PHP-GMP设置

Composer工具

检查composer版本(它应该是1.5或更高版本)

composer --version

安装SDK(用于开发)

git clone https://github.com/americanexpress/hyperledger-fabric-sdk-php && cd $_
composer update

生成SDK API文档

composer docs
open build/docs/index.html

运行端到端测试用例

在运行测试之前,我们需要启动fabric网络和测试工具

composer fixture:up

目前,我们提供了一个查询链码的示例测试用例,可以按以下方式运行

composer test:integration

运行测试后,请随意关闭fabric网络

composer fixture:down

更多信息请参阅Docker Compose

.proto文件重新生成PHP类文件

composer protoc

更多关于从proto文件编译PHP代码的信息。

贡献

我们欢迎您对GitHub上美国运通开源社区的兴趣。任何向由美国运通开源社区管理的开源项目做出贡献的人必须接受并签署一项协议,表明同意以下条款。除了本协议授予美国运通和由美国运通分发的软件的接受者之外,您保留您在您的贡献中可能拥有的所有权利、标题和利益。

请随时提交pull请求,并查看CONTRIBUTING.md以获取提交格式的详细信息。

许可证

在此项目下做出的任何贡献将由Apache License 2.0管理。

行为准则

本项目遵循美国运通社区指南。参与其中,您应遵守这些指南。