TRON开发者指南 | 第四期:关于TRON协议 — 账户创建与交易

孙宇晨
5 min readFeb 25, 2020

--

波场TRON团队为更好的地服务社区开发者及建设者,吸引更多强大力量共同建设TRON全球网络生态社区,特制作TRON开发指南,指南将由浅入深为您介绍在波场网络上所遇见到的问题和注意事项。

一、帐户创建

您可以生成脱机密钥对,其中包括TRON不会记录的地址和私钥。 用户地址生成算法如下:

1. 生成密钥对并提取公钥(表示其x,y坐标的64字节字节数组)。

2. 使用sha3–256函数哈希公钥,并提取结果的最后20个字节。

3. 将41添加到字节数组的开头。 初始地址的长度应为21个字节。

4. 使用sha256函数对地址进行两次哈希,并将前4个字节作为验证码。

5. 将验证码添加到初始地址的末尾,并通过base58编码获取base58check格式的地址。

6. 编码的主网地址以T开头,长度为34个字节。

请注意:采用的sha3协议是KECCAK-256。查看用于生成用户地址的 Java代码演示。

(https://github.com/tronprotocol/wallet-cli/blob/master/src/main/java/org/tron/demo/ECKeyDemo.java)

要使此密钥对成为TRON网络中的帐户,您需要使用TRON网络中已存在的帐户调用以下三个API之一:

● 直接调用Create Account API

● 将TRX转移到新地址

● 将TRC10代币转移到新帐户。 注意:TRC20代币转移无法激活帐户。

在网络确认交易后,您可以查询与TRON网络中的地址匹配的帐户信息。 创建帐户会从创建者处消耗0.1 TRX,或者消耗冻结获得的带宽。

二、交易

生成签名交易:安装NPM库 于 :
https://www.npmjs.com/package/@tronscan/client处或下载:
utils
https://github.com/tronscan/tronscan-node-client/tree/master/src/utils
and the lib
https://github.com/tronscan/tronscan-node-client/tree/master/src/lib
文件夹至你的项目并于本地使用。或者,您可以使用 API签名和广播流 来生成一个已签署的交易。
创建交易:将 transactionBuilder 和 加密 导入到您的Javascript文件中。
const CryptoUtils = require(“@tronscan/client/src/utils/crypto”);

const TransactionUtils = require(“@tronscan/client/src/utils/transactionBuilder”);

导入的transactionBuilder文件中的此函数将创建交易对象

上面指定的buildTransferTransaction将返回buildTransferContract的值,该值是创建事务对象的函数。

签署交易
导入的加密文件中的此函数将对事务对象进行签名。

成功运行这些功能后,您将拥有一个已签名的事务,可以将其广播到TRON区块链。

完整代码示例:
const CryptoUtils = require(“@tronscan/client/src/utils/crypto”);

const TransactionUtils = require(“@tronscan/client/src/utils/transactionBuilder”);

function transferContractTx() {

const privateKey = “b815adfd6ef133d5a878869cb3a2b31f32d4c1481132a71300c3e125be0ab1a1”;

const token = “TRX”;

const fromAddress = CryptoUtils.pkToAddress(privateKey);

const toAddress = “TQ6pM81JDC2GhrUoNYtZGvPc7SvyqcemEu”;

const amount = 1;

let transaction = TransactionUtils.buildTransferTransaction(token, fromAddress, toAddress, amount);

let signedTransaction = CryptoUtils.signTransaction(privateKey, transaction);

}

--

--

孙宇晨

波场@Tronfoundation创始人|@BitTorrent CEO|马云湖畔大学首批学员