activeledger / sdk
用于与 Activeledger 集成的 PHP 包
0.0.1
2018-11-02 17:00 UTC
Requires
- php: ~5.6|~7.0
Requires (Dev)
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2024-10-01 21:20:06 UTC
README
Activeledger - PHP SDK
Activeledger PHP SDK 已构建,以提供一种简单的方法将您的 PHP 网络应用程序连接到 Activeledger 网络
Activeledger
安装
$ composer require activeledger/sdk ~0.0.1
$ composer install -o
用法
SDK 当前支持以下功能
- 连接处理
- 密钥生成
- 密钥注册
- 交易构建
- 加密和非加密交易发布
一旦安装了 SDK,请使用自动加载器导入类
require __DIR__ . '/vendor/autoload.php';
连接
发送交易时,您必须传递一个连接,该连接提供建立与网络和指定节点的链接所需的信息。
为此,必须创建一个连接对象。此对象必须传递协议、地址、端口和加密标志。
示例
require __DIR__ . '/vendor/autoload.php'; // Setup the connection object to use localhost over http unencrypted $connection = new activeledger\sdk\Connection("http", "127.0.0.1", 5260, false); // Use localhost but encrypt transactions $connection = new activeledger\sdk\Connection("http", "127.0.0.1", 5260, true);
密钥
可以使用 Key 类生成密钥。
目前可以生成两种类型的密钥,更多类型计划中,并将首先在 Activeledger 中实现。这些类型是 RSA 和椭圆曲线。
生成密钥
生成密钥时,默认为椭圆曲线密钥。返回的对象将是 KeyIdentity 类。
示例
require __DIR__ . '/vendor/autoload.php'; // Generate Elliptic Key $identity = activeledger\sdk\Key::generateKeyIdentity(); // Generate RSA Key $identity = activeledger\sdk\Key::generateKeyIdentity("rsa");
注册密钥
一旦您生成了一个密钥,为了使用它来签名交易,它必须注册到账本网络中
示例
require __DIR__ . '/vendor/autoload.php'; // Create Connection $connection = new activeledger\sdk\Connection("http", "127.0.0.1", 5260, false); // Generate Key $identity = activeledger\sdk\Key::generateKeyIdentity(); try { // Onboard Key $stream = $identity->onBoard($connection); }catch(Exception $error) { // Manage any exceptions such as consensus problem or transport errors die($error->getMessage()); }
导出密钥
要保存密钥以供以后使用,您可以使用 php serialize 函数
require __DIR__ . '/vendor/autoload.php'; // Generate Key $identity = activeledger\sdk\Key::generateKeyIdentity(); // Store object as a safe string $export = base64_encode(serialize($identity));
导入密钥
您可以使用 php unserialize 函数导入密钥,该函数将恢复对象
require __DIR__ . '/vendor/autoload.php'; // Restore KeyIdentity Object from the exported safe string $identity = serialize(base64_decode($export))
交易
Transaction 类包含一个静态函数,有助于构建 Activeledger 交易对象。
require __DIR__ . '/vendor/autoload.php'; // Generate Activeledger Transaction $transaction = activeledger\sdk\Transaction::build( "Contract Stream / Label", "Namespace", // Input Streams (Requires Signatures) array("Identity Stream" => array()), // Outputs array("Outputs: Identity Stream" => array()), // Read Only Streams array("Reads : Label" => "Idenity Stream") );
签名并发送交易
在签名交易时,您必须发送其完成版本。签名后不能进行任何更改,因为这会导致账本拒绝它。
密钥必须是已成功注册到要发送交易的账本的密钥。
示例
require __DIR__ . '/vendor/autoload.php'; // Create Connection $connection = new activeledger\sdk\Connection("http", "127.0.0.1", 5260, false); // Generate Key $identity = activeledger\sdk\Key::generateKeyIdentity(); try { // Onboard Key $stream = $identity->onBoard($connection); // Generate Activeledger Transaction $transaction = activeledger\sdk\Transaction::build( "0000482232bcca98e3f2b375e6209400e185fae26efad7812268d7d66b321131", "example-namespace", // Input Streams (Requires Signatures) array($stream => array("text" => "Hello World")) ); // Get signed version of this transaction $signedTx = $identity->sign($transaction) // Submit $response = $connection->send($signedTx); // Response object will contain the streams property. $response->streams->new; // Contains created Activity Streams $response->streams->updated; // Contains updated Activity Streams }catch(Exception $error) { // Manage any exceptions such as consensus problem or transport errors die($error->getMessage()); }
许可
本项目受MIT 许可协议许可