2 Hello World
通过本章节,您将学会使用基本的JSON-RPC接口,完成创建并激活区块链账号,实现数据上链的功能。
2.1 获得区块链账号和测试HWT
通过HWChain Faucets,您可以获得已被激活的区块链账号,账号内已存入一定的测试网HWT,妥善保管好您的账号和私钥。使用测试网区块浏览器,通过区块链账号可查询到当前余额及账号被激活的交易记录。
2.2 通过JSON-RPC接口使用区块链服务
您可以使用Postman等HTTP接口测试工具尝试调用JSON-RPC接口。
JSON-RPC接口地址:https://testnet-apis.hwelltech.com/api/rpc
(1) 获取区块链账号
参考JSON-RPC API 的创建账号接口获得区块链账号。接口调用成功后,如以下报文所示,account_id就是区块链账号,master_seed就是账号对应的私钥,私钥需要妥善保管。新创建的账号无法在链上查到,需要先激活。
{
"result": {
"account_id": "hDycJcUZwWnm9VGoQVHs9EpVz2Bwha9Ej9",
"key_type": "secp256k1",
"master_key": "DULL BARN PIT ORE CHOW BUCK OHIO FIT MYRA FEAR FEEL BLOC",
"master_seed": "snB11sw4*************TCT1ro1y",
"master_seed_hex": "B2EC37BF048722C7BE64F617D0602A78",
"public_key": "aBP1qZ89tF7NLoFESEoRQcZyZ9gUiF9u4ox7UwMdEHyGedDmCo1G",
"status": "success"
}
}
(2) 激活新创建的账号
参考JSON-RPC API 的在线支付HWT接口向新创建的账号转账大于30的HWT来激活账号,并在Memo中传入十六进制的备注(非必传)。备注中的信息即为上链信息,如以下接口报文所示,把“I am Bob.”(即:4920616d20426f622e)写到了区块链上。接口返回的报文中将包含交易的hash,保存好交易hash,可通过交易hash来查询链上的交易详情。
{
"method": "submit",
"params": [{
"offline": false,
"secret": "ss3ZBtHP*************ryGE4Kuf",
"tx_json": {
"Account": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"Amount": 50,
"Destination": "hHb9CJAWyB4hj91VRWn96DkukG4bwdtyTr",
"TransactionType": "Payment",
"Memos": [{
"Memo": {
"MemoData": "4920616d20426f622e",
"MemoType": "48656c6c6f20576f726c64"
}
}]
}
}]
}
2.3 查询上链结果
(1) 通过区块链浏览器查询
在测试网区块浏览器查询刚刚创建的区块链账号,如果能够在链上查询到此账号,说明此账号已被激活成功,同时还能查询到激活账号对应的交易记录和上链内容。
(2) 判断交易状态
参考JSON-RPC API 的获取交易历史接口,通过交易hash查询交易详情。如接口返回的以下报文所示,"status": "success",并且"validated": true,说明交易成功,并且已经通过验证,即上链交易成功。
{
"result": {
"Account": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"Amount": "100",
"Destination": "hHb9CJAWyB4hj91VRWn96DkukG4bwdtyTr",
"Fee": "10000",
"Flags": 2147483648,
"Memos": [
{
"Memo": {
"MemoData": "74657374",
"MemoType": "737472696E67"
}
}
],
"Sequence": 15,
"SigningPubKey": "03EAC169AF572EB52038D1C51F7E5B9C94CE34A7FBB714860BE001BDE25A4B03C8",
"TransactionType": "Payment",
"TxnSignature": "304402206BEE8A50F000D3EBA91F4C50D0A2D08927514C414ABCA729303AE09B1A2E9A90022030E05AC825DC510AF5244552091A08FD84364A32B7F57B1C5CEC2FF195610517",
"date": 619176740,
"hash": "4E284CD73E6BDE90DD8A740B4E49340B3C5A8D4DBA497BFDD75264351EB16617",
"inLedger": 467844,
"ledger_current_index": 467932,
"ledger_index": 467844,
"meta": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"Account": "hHb9CJAWyB4hj91VRWn96DkukG4bwdtyTr",
"AssetNumber": "0000000000000006",
"Balance": "99989772898258360",
"Flags": 8388608,
"OwnerCount": 0,
"Sequence": 189
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8",
"PreviousFields": {
"Balance": "99989772898248260"
},
"PreviousTxnID": "E2D3A468F6CD4A52B3580D8041AD325146B79E38C50D89093020C3A1BFB24E9C",
"PreviousTxnLgrSeq": 467828
}
},
{
"ModifiedNode": {
"FinalFields": {
"Account": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"AssetNumber": "0000000000000003",
"Balance": "13369849900",
"Flags": 8388608,
"OwnerCount": 0,
"Sequence": 16
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "AA22EEB13821659B8316218C1D78606FD9C57C3192C2104EB7B0920AA30FF6C6",
"PreviousFields": {
"Balance": "13369860000",
"Sequence": 15
},
"PreviousTxnID": "E2D3A468F6CD4A52B3580D8041AD325146B79E38C50D89093020C3A1BFB24E9C",
"PreviousTxnLgrSeq": 467828
}
}
],
"TransactionIndex": 0,
"TransactionResult": "tesSUCCESS",
"delivered_amount": "100"
},
"status": "success",
"validated": true
}
}