6

Chia区块链JS开发包【chia-client】

 3 years ago
source link: http://blog.hubwiz.com/2021/04/19/chia-js-client/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Chia区块链JS开发包【chia-client】

发表于 2021-04-19

| 分类于 区块链

Chia是最近在国内爆火的一个区块链项目,由于采用基于硬盘空间 的时空证明共识算法(PoST),造成市场上硬盘价格暴涨。在这个 教程中,我们将学习如何使用javascript访问Chia节点API,以便在 Chia区块链上进行DApp的开发。

chia_network.png

区块链开发教程: 以太坊 | 比特币 | EOS | Tendermint | Hyperledger Fabric | Omni/USDT | Ripple | Tron

1、chia js client简介

chia-client是chiaexplore团队开源 的Chia区块链typescript/javascript开发包,支持chia节点和钱包的RPC API访问。

chia-client下载地址:https://github.com/freddiecoleman/chia-client

2、使用chia js client访问Chia全节点API

使用chia-client的FullNode对象来调用chia全节点API。

首先在你的js应用中创建一个FullNode对象,传入选项参数来指定Chia全节点API的 连接信息,例如协议、地址和端口。例如,下面的javascript代码 创建一个访问本机Chia全节点的FullNode对象:

import { FullNode } from 'chia-client';

const fullNode = new FullNode({
protocol: 'http',
hostname: 'localhost',
port: 8555
});

一旦创建了FullNode对象,就可以用javascript代码直接调用各种Chia全节点API了。 例如获取当前的区块链状态:

const chainState = await fullNode.getBlockchainState();
console.log(chainState)

结果如下:

{
"blockchain_state": {
"difficulty": 7,
"genesis_challenge_initialized": true,
"mempool_size": 0,
"peak": {... },
"space": 73659118,
"sub_slot_iters": 134217728,
"sync": {
"sync_mode": false,
"sync_progress_height": 0,
"sync_tip_height": 0,
"synced": false
}
},
"success": true
}

Chia的全节点API说明可以访问这里:https://github.com/Chia-Network/chia-blockchain/wiki/RPC-Interfaces#full-api-reference, chia-client的方法名和全节点API名之间的变换关系很容易理解。

3、使用chia js client访问Chia钱包API

类似的,使用chia-client的Wallet对象来访问Chia钱包API。

首先在你的js应用中创建一个Wallet对象,传入选项参数来指定Chia钱包API的 连接信息,例如协议、地址和端口。例如,下面的javascript代码创建一个访问本机 Chia钱包API的Wallet对象:

import { Wallet } from 'chia-client';

const wallet = new Wallet({
protocol: 'http',
hostname: 'localhost',
port: 8555
});

有了Wallet对象,就可以调用各种Chia钱包API了。例如生成新的助记词:

const balance = await wallet.getWalletBalance();
console.log(balance)

输出结果如下:

{
"success": true,
"wallet_balance": {
"confirmed_wallet_balance": 0,
"max_send_amount": 0,
"pending_change": 0,
"spendable_balance": 0,
"unconfirmed_wallet_balance": 0,
"wallet_id": 1
}
}

Chia的钱包API说明可以访问这里:https://github.com/Chia-Network/chia-blockchain/wiki/RPC-Interfaces#wallet


汇智网原创,转载请标明出处


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK