mul53/blzphp

一个PHP库,可用于访问Bluzelle数据库服务。

v0.0.12 2020-06-15 23:54 UTC

README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

安装

您可以通过Composer安装此库:composer require bluzelle/blzphp

入门

通常,您必须在调用任何其他函数之前初始化blzphp。以下操作使用您自己的配置参数进行初始化:

blz = new Bluzelle\Client('account', 'mnemonic', 'endpoint', 'chainId', 'uuid');

这执行一些初始检查,检索您的账户信息,并通过一个对象返回,您可以调用其余的API函数。

现在,您可以使用以下函数执行数据库操作,以及检索账户和状态信息。

blzphp API文档

以下详细介绍了如何使用Bluzelle数据库服务。

new Bluzelle\Client({...})

配置Bluzelle连接。可以通过创建此类的实例来创建多个客户端。

use Bluzelle\Client;

api = new Client(
    'bluzelle1xhz23a58mku7ch3hx8f9hrx6he6gyujq57y3kp',
    'volcano arrest ceiling physical concert sunset absent hungry tobacco canal census era pretty car code crunch inside behind afraid express giraffe reflect stadium luxury',
    "https://:1317",
    "20fc19d4-7c9d-4b5c-9578-8cedd756e0ea",
    "bluzelleTestPublic-1"
);

以下调用是创建Bluzelle::Swarm::Client类的实例的方法。

通用函数

version()

获取Bluzelle服务的版本。

api->version();

返回一个解析为包含版本信息的字符串的承诺,例如。

0.0.0-39-g8895e3e

如果未收到连接的响应,则抛出异常。

account()

检索当前活动Bluzelle账户的信息。

api->account();

返回一个解析为表示账户信息的JSON对象的承诺,例如。

如果未收到连接的响应,则抛出异常。

数据库函数

create($key, $value ,$gas_info[, $lease_info])

在数据库中创建一个字段。

api->create('mykey', '{ a: 13 }', ['gax_fee' => '400001'], ['days' => 100]);

返回一个解析为空的承诺。

当从连接未收到响应、键已存在或值无效时抛出异常。

read($key, $prove)

检索键的值,无需共识验证。可以可选地要求结果具有加密证明(较慢)。

value = api->read('mykey');

返回一个解析为键的字符串值的承诺。

当键不在数据库中时抛出异常。当prove为true且结果验证失败时抛出异常。

txRead($key, $gas_info)

通过事务检索键的值(即使用共识)。

value = api->txRead('mykey', ['max_fee' => '400001']);

返回一个解析为键的字符串值的承诺。

当键不在数据库中时抛出异常。

update($key, $value , gas_info, lease_info)

更新数据库中的一个字段。

api->update('mykey', '{ a: 13 }', ['max_fee': '400001'], ['days' => 100]);

返回一个解析为空的承诺。

当键不存在或值无效时抛出异常。

delete($key, $gas_info)

从数据库中删除一个字段。

api->delete('mykey', ['max_fee' => '400001']);

返回一个解析为空的承诺。

当键不在数据库中时抛出异常。

has($key)

查询键是否在数据库中。此函数绕过共识和加密机制以获得速度。

hasMyKey = api->has('mykey');

返回一个解析为布尔值的承诺 - truefalse,表示键是否在数据库中。

txHas($key, $gas_info)

通过事务查询键是否在数据库中(即使用共识)。

hasMyKey = api->txHas('mykey', ['gas_price' => 10]);

返回一个解析为布尔值的承诺 - truefalse,表示键是否在数据库中。

keys()

检索所有键的列表。此函数绕过共识和加密机制以获得速度。

keys = api->keys();

返回一个解析为字符串数组的承诺。例如:["key1", "key2", ...]

txKeys($gas_info)

通过事务检索所有键的列表(即使用共识)。

keys = api->txKeys([ 'gas_price' => 10]);

返回一个解析为字符串数组的承诺。例如:["key1", "key2", ...]

rename($key, $new_key, $gas_info)

更改现有键的名称。

api->rename('key', 'newkey', ['gas_price' => 10]);

返回一个解析为空的承诺。

如果键不存在,则抛出异常。

返回一个解析为布尔值的承诺 - truefalse,表示键是否在数据库中。

count()

检索当前数据库/uuid中的键的数量。此函数绕过共识和加密机制以获得速度。

number = api->count();

返回一个解析为整数值的承诺。

txCount($gas_info)

通过事务检索当前数据库/uuid中的键的数量。

number = api->txCount(['gas_price' => 10]);

返回一个解析为整数值的承诺。

deleteAll($gas_info)

删除当前数据库/uuid中的所有键。

api->deleteAll([gas_price => 10]);

返回一个解析为空的承诺。

keyValues()

枚举当前数据库/uuid中的所有键和值。此函数为了速度而绕过共识和加密机制。

kvs = api->keyValues();

返回一个解析为包含键/值对的JSON数组的承诺,例如:

[{"key": "key1", "value": "value1"}, {"key": "key2", "value": "value2"}]

txKeyValues($gas_info)

通过事务枚举当前数据库/uuid中的所有键和值。

kvs = api->txKeyValues(['gas_price' => 10]);

返回一个解析为包含键/值对的JSON数组的承诺,例如:

[{"key": "key1", "value": "value1"}, {"key": "key2", "value": "value2"}]

multiUpdate($key_values, $gas_info)

更新数据库中的多个字段。

api->multiUpdate([['key' => "key1", 'value' => "value1"], ['key' => "key2", 'value' => "value2"], ['gas_price': 10]]);

返回一个解析为空的承诺。

当任何键不存在时抛出异常。

getLease($key)

检索键的租期剩余的最短时间。此函数为了速度而绕过共识和加密机制。

value = api->getLease('mykey');

返回一个承诺,解析为键租期剩余的最短时间(以秒为单位)。

当键不在数据库中时抛出异常。

txGetLease($key, $gas_info)

使用事务检索键的租期剩余的最短时间。

value = api->txGetLease('mykey', ['gas_price' => 10]);

返回一个承诺,解析为键租期剩余的最短时间(以秒为单位)。

当键不在数据库中时抛出异常。

renew_lease($key, $gas_info, $lease_info)

更新键的租期剩余的最短时间。

value = api->renewLease('mykey', ['max_fee' => '400001'], [ 'days' => 100 ]);

返回一个承诺,解析为键租期剩余的最短时间。

当键不在数据库中时抛出异常。

renewLeaseAll($gas_info, $lease_info)

更新所有键的租期剩余的最短时间。

value = api->renewLeaseAll(['max_fee' => '400001'], [ 'days' => 100 ]);

返回一个承诺,解析为键租期剩余的最短时间。

当键不在数据库中时抛出异常。

getNShortestLease($n)

检索数据库中租期最短的n个键的列表。此函数为了速度而绕过共识和加密机制。

keys = api->getNShortestLease(10);

返回一个包含键、租期(以秒为单位)的对象的JSON数组,例如:

[ { key: "mykey", lease: { seconds: "12345" } }, {...}, ...]

txGetNShortestLease($n, $gas_info)

使用事务检索数据库中租期最短的N个键/值的列表。

keys = api.txGetNShortestLease(10, ['max_fee' => '400001']);

返回一个包含键、生存期(以秒为单位)的对象的JSON数组,例如:

[ { key: "mykey", lifetime: "12345" }, {...}, ...]

开发

检出仓库后,运行bin/setup安装依赖项。然后,运行rake spec运行测试。您还可以运行bin/console以获得一个交互式提示,这将允许您进行实验。

要在此本地计算机上安装此gem,请运行bundle exec rake install。要发布新版本,更新version.rb中的版本号,然后运行bundle exec rake release,这将为版本创建git标签,推送git提交和标签,并将.gem文件推送到phpgems.org

贡献

欢迎在GitHub上提交错误报告和拉取请求:https://github.com/mul53/bluzelle。此项目旨在成为一个安全、欢迎的协作空间,并期望贡献者遵守行为准则

许可

该gem根据MIT许可条款作为开源软件提供。

行为准则

所有与Bluzelle项目的代码库、问题跟踪器、聊天室和邮件列表互动的人都应遵守行为准则