fisco-bcos-service

Rust SDK For FISCO BCOS 2.7.0+

安装

toml [dependencies] fisco-bcos-service = ">=0.4, <1"

此 crate 使用了 TASSL 来处理 TLS 连接,在 LinuxMacos 下无需做任何额外操作,其他环境下则需要指定以下环境变量:

LinuxMacos 下,如果你已经编译好了 TASSL,也可以通过指定以上环境变量来缩短编译时间。

使用

配置文件为包含以下信息的 json 文件:

json { "service_type": "rpc", "node": { "host": "127.0.0.1", "port": 8545 }, "account": "./accounts/alice.pem", "contract": { "solc": "./bin/solc-0.4.25", "source": "./contracts", "output": "./contracts/.output" }, "authentication": { "ca_cert": "./authentication/gm/gmca.crt", "sign_cert": "./authentication/gm/gmsdk.crt", "sign_key": "./authentication/gm/gmsdk.key", "enc_key": "./authentication/gm/gmensdk.key", "enc_cert": "./authentication/gm/gmensdk.crt" }, "sm_crypto": false, "group_id": 1, "chain_id": 1, "timeout_seconds": 10 }

每一项的解释如下:

注:配置项中 accountcontractauthentication 中的路径如果使用相对路径,它的参考路径为该配置文件所在路径。

二、Web3Service

Web3Service 是对 FISCO BCOS JSON-RPC 的封装。

2.1 实例化

```rust use fiscobcosservice::createweb3service;

let configfilepath = "./configs/config.json"; let web3service = createweb3service(configfile_path).unwrap(); ```

2.2 接口

三、SystemConfigService

SystemConfigService 是对预编译合约 SystemConfigPrecompiled 的封装。

3.1 实例化

```rust use fiscobcosservice::{ createweb3service, precompiled::systemconfigservice::SystemConfigService, };

let configfilepath = "./configs/config.json"; let web3service = createweb3service(configfilepath).unwrap(); let systemconfigservice = SystemConfigService::new(&web3service); ```

3.2 接口

四、TableCRUDService

TableCRUDService 是对预编译合约 TableFactoryCRUDPrecompiled 的封装。

4.1 实例化

```rust use fiscobcosservice::{ createweb3service, precompiled::tablecrudservice::TableCRUDService, };

let configfilepath = "./configs/config.json"; let web3service = createweb3service(configfilepath).unwrap(); let tablecrudservice = TableCRUDService::new(&web3service); ```

4.2 接口

五、SQLService

通过 SQLService ,我们可以以 SQL 语句的方式来操作 TableCRUDService 相关接口。

5.1 实例化

```rust use fiscobcosservice::{ createweb3service, sql_service::SQLService, };

let configfilepath = "./configs/config.json"; let web3service = createweb3service(configfilepath).unwrap(); let sqlservice = SQLService::new(&web3_service); ```

5.2 接口

六、ConsensusService

ConsensusService 是对预编译合约 ConsensusPrecompiled 的封装。

6.1 实例化

```rust use fiscobcosservice::{ createweb3service, precompiled::consensus_service::ConsensusService, };

let configfilepath = "./configs/config.json"; let web3service = createweb3service(configfilepath).unwrap(); let consensusservice = ConsensusService::new(&web3_service); ```

6.2 接口

七、CNSService

CNSService 是对预编译合约 CNSPrecompiled 的封装。

7.1 实例化

```rust use fiscobcosservice::{ createweb3service, cns_service::CNSService, };

let configfilepath = "./configs/config.json"; let web3service = createweb3service(configfilepath).unwrap(); let cnsservice = CNSService::new(&web3_service); ```

7.2 接口

八、PermissionService

PermissionService 是对预编译合约 PermissionPrecompiled 的封装。

8.1 实例化

```rust use fiscobcosservice::{ createweb3service, permission_service::PermissionService, };

let configfilepath = "./configs/config.json"; let web3service = createweb3service(configfilepath).unwrap(); let permissionservice = PermissionService::new(&web3_service); ```

8.2 接口

九、ContractLifeCycleService

ContractLifeCycleService 是对预编译合约 ContractLifeCyclePrecompiled 的封装。

9.1 实例化

```rust use fiscobcosservice::{ createweb3service, contractlifecycle_service::ContractLifeCycleService, };

let configfilepath = "./configs/config.json"; let web3service = createweb3service(configfilepath).unwrap(); let contractlifecycleservice = ContractLifeCycleService::new(&web3_service); ```

9.2 接口

十、ChainGovernanceService

ChainGovernanceService 是对预编译合约 ChainGovernancePrecompiled 的封装。

10.1 实例化

```rust use fiscobcosservice::{ createweb3service, chaingovernanceservice::ChainGovernanceService, };

let configfilepath = "./configs/config.json"; let web3service = createweb3service(configfilepath).unwrap(); let chaingovernanceservice = ChainGovernanceService::new(&web3service); ```

10.2 接口

十一、EventService

通过 EventService,可对合约时间进行监听。

11.1 实例化

```rust use fiscobcosservice::createeventservice;

let configfilepath = "./configs/config.json"; let eventservice = createeventservice(configfile_path).unwrap(); ```

11.2 接口

十二、注意事项

License

Apache-2.0