mul53 / blzphp
一个PHP库,可用于访问Bluzelle数据库服务。
Requires
- php: ~7.2
- bitwasp/bech32: ^0.0.1
- bitwasp/bitcoin: ^1.0
- guzzlehttp/guzzle: ~6.0
- simplito/bn-php: ^1.1
- simplito/elliptic-php: ^1.0
Requires (Dev)
- phpunit/phpunit: >=8.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-29 05:29:08 UTC
README
安装
您可以通过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');
返回一个解析为布尔值的承诺 - true
或 false
,表示键是否在数据库中。
txHas($key, $gas_info)
通过事务查询键是否在数据库中(即使用共识)。
hasMyKey = api->txHas('mykey', ['gas_price' => 10]);
返回一个解析为布尔值的承诺 - true
或 false
,表示键是否在数据库中。
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]);
返回一个解析为空的承诺。
如果键不存在,则抛出异常。
返回一个解析为布尔值的承诺 - true
或 false
,表示键是否在数据库中。
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项目的代码库、问题跟踪器、聊天室和邮件列表互动的人都应遵守行为准则。