0chain

中文文档
1.3.14发布于 2020/06/26GPLCommonJS

. js客户端库与0链区块链交互

中文使用文档
文档目录17 节
  1. 安装
  2. api
  3. 初始化
  4. bls-wasm依赖
  5. registerClient
  6. restoreWallet
  7. sendTransaction
  8. storeData
  9. checkTransactionStatus
  10. getBalance
  11. executeSmartContract
  12. getBlockInfoByHash
  13. getBlockInfoByRound
  14. getChainStats
  15. getLatestFinalized
  16. getRecentFinalized
  17. 示例文件

面向Node的客户端SDK

这是0chain js-client-sdk的Node.js实现。使用此SDK与0Chain区块链进行交互。SDK支持钱包创建、交易提交和验证。除此之外,sdk还提供api来查询区块链运行状况本身。看到 example.js 以文件获取更多详细信息。

安装

通过Github: https://github.com/0chain/js-client-sdk

api

所有功能 init() 回报的承诺。

第一个 import / require 来自github的库 https://github.com/0chain/js-client-sdk

import jsClientSdk from 'js-client';

初始化

在调用SDK中的任何函数之前, 初始化 应该调用具有集群配置和bls-wasm实例的函数。

bls-wasm依赖

在初始化js-client-sdk时,要传递一个bls实例。BLS可以通过NPM安装,使用下面的命令:

npm install bls-wasm

Github库: https://github.com/herumi/bls-wasm

输入参数

Config——包含集群配置的json字符串

输出

无

下面的代码显示了一个初始化SDK的示例 0 chain-local-cluster.

var config = {
    "miners": [
    "http://one.devnet-0chain.net:31071/",
    "http://one.devnet-0chain.net:31072/",
    "http://one.devnet-0chain.net:31073/",
    "http://one.devnet-0chain.net:31074/",
    "http://one.devnet-0chain.net:31075/",
    "http://one.devnet-0chain.net:31076/",
    "http://one.devnet-0chain.net:31077/",
    "http://one.devnet-0chain.net:31078/",
    "http://one.devnet-0chain.net:31079/"
  ],
  "sharders": [
    "http://one.devnet-0chain.net:31171/",
    "http://one.devnet-0chain.net:31172/",
    "http://one.devnet-0chain.net:31173/",
    "http://one.devnet-0chain.net:31174/",
    "http://one.devnet-0chain.net:31175/",
    "http://one.devnet-0chain.net:31176/",
    "http://one.devnet-0chain.net:31177/",
    "http://one.devnet-0chain.net:31178/",
    "http://one.devnet-0chain.net:31179/"
  ],
  "chain_id" :   "0afc093ffb509f059c55478bc1a60351cef7b4e9c008a53a6cc8241ca8617dfe",
  "clusterName" : "0chain-local-cluster",
  "proxyServerUrl" : "http://localhost:9082",
  "transaction_timeout" : 20,
  "state " : true
}
jsClientSdk.init(config, bls)

要使用本地集群,请使用bls-wasm实例配置调用init

jsClientSdk.init(bls)

registerClient

用0Chain区块链注册客户端。

输入参数 无

输出

钱包 成功承诺解决的情况下的对象。

jsClientSdk.registerClient()

restoreWallet

使用0Chain区块链恢复现有客户端。需要传递秘密助记符

输入参数

助记符——字符串

输出

钱包——如果成功的话。错误,否则

jsClientSdk.restoreWallet(mnemonic)

sendTransaction

使用这个函数将令牌从一个钱包发送到另一个钱包。

输入参数

fromAccount -从钱包

toWalletId -到钱包的客户端id

值-发送的数量

注意-事务的描述

输出

交易——如果成功。错误,否则

jsClientSdk.sendTransaction(fromAccount, toWalletId, value, note)

storeData

使用这个函数在钱包中存储数据

输入参数

fromAccount -从钱包

数据-要保存在区块链中的数据(字符串类型)

注意-事务的描述

输出

交易——如果成功。错误,否则

jsClientSdk.storeData(fromAccount, data, note)

checkTransactionStatus

使用此函数检查先前放置的事务的状态。

注意 只有在事务处理完成后,事务状态才可用。请提供至少3秒的时间处理交易。您可以多次检查状态。

输入参数

hash -先前放置的事务的哈希值

输出

TransactionDetails——具有status字段的事务的详细信息。

jsClientSdk.checkTransactionStatus(hash)

getBalance

使用这个功能来获取特定钱包的余额。

输入参数

client_id—您感兴趣的余额的客户id

输出

TransactionDetails——包含balance字段的事务的详细信息。

jsClientSdk.getBalance(client_id)

executeSmartContract

发送指定金额的交易,如value参数fromAccount toWalletId中提到的。

输入参数

fromAccount -来自钱包

smartContractAddress -智能合约的地址

payload——取决于正在执行的smartContract函数

transactionValue -事务值——默认为零

输出 如果成功,事务——对象。

jsClientSdk.executeSmartContract(fromAccount, smartContractAddress, payload, transactionValue)

getBlockInfoByHash

使用此函数可以通过块散列获取块摘要或块详细信息。

输入参数

哈希——区块的哈希值

options——使用BlockInfoOptions。HEADER只获取摘要或BlockInfoOptions。满取整个街区。默认为HEADER

回调——成功时调用的函数

errCallback——失败时调用的函数

输出

块摘要或块对象,具体取决于指定的选项

jsClientSdk.getBlockInfoByHash(hash, options, callback, errCallback)

getBlockInfoByRound

使用此函数按整数获取块摘要或块详细信息。

输入参数

整数——整数 options——使用BlockInfoOptions。HEADER只获取摘要或BlockInfoOptions。满取整个街区。默认为HEADER

回调——成功时调用的函数

errCallback——失败时调用的函数

输出

块摘要或块对象,具体取决于指定的选项

jsClientSdk.getBlockInfoByRound(round, options, callback, errCallback)

getChainStats

使用这个函数来获取关于区块链的当前信息,比如当前的整数、平均块生成/结束时间等

输入参数

无

输出

ChainStats——一个包含区块链详细信息的对象。

jsClientSdk.getChainStats()

getLatestFinalized

使用此函数获取最后完成的块摘要。

输入参数

无

输出

BlockSummary——如果成功,对象包含最新完成块的信息

jsClientSdk.getLatestFinalized()

getRecentFinalized

使用此函数获取最近完成的10个块的摘要。

输入参数

无

输出

BlockSummary的数组。——如果成功。

jsClientSdk.getRecentFinalized()

示例文件

SDK还附带了一个 example.js 该文件演示了如何使用api。

版本与发布记录

0chain 共发布 27 个版本,首次发布于 2020/03/16;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.3.14latest2020/06/266 年前
1.3.132020/06/036 年前
1.3.122020/05/296 年前
1.3.112020/05/256 年前
1.3.102020/05/236 年前
1.3.92020/05/236 年前

关于 0chain 的常见问题

0chain 是什么?

. js客户端库与0链区块链交互

如何安装 0chain?

在项目目录运行 npm install 0chain,或使用 pnpm add / yarn add / bun add。

0chain 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/0chain 是否存在。

0chain 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

0chain 可以商用吗?

0chain 使用 GPL 许可。声明的许可为 GPL,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

0chain 还在维护吗?

最新版本 1.3.14 发布于 2020/06/26(6 年前);至今共发布 27 个版本,其中过去 12 个月发布了 0 个;首次发布于 2020/03/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。