TRX是TRON网络上最主要的加密货币,应用场景广泛,TRON网络上的奖励以TRX的形式发放,用户只能通过质押TRX来获得资源以及投票权。而在DeFi借贷市场中,TRX还被用作主要的抵押品,在NFT市场中,TRX被用作记账单位,等等。
TRON网络允许开发人员构建去中心化应用程序,也叫DAPP,这些应用程序共享有限的TRON网络资源,因此,TRON需要一种机制来防止DAPP意外或恶意地占用所有网络资源。
TRON网络资源消耗的多少通过带宽和能量来衡量,其中带宽是衡量保存在区块链数据库中的交易字节大小的单位,能量是衡量在TRON网络上TVM虚拟机执行特定操作所需的计算量的单位。当用户进行交易时,他们必须支付执行交易所需的带宽和能量的费用,而TRON支持通过燃烧TRX来支付带宽和能量费用。
因此,即使一个恶意的dapp中有一个无限循环,网络资源也不会因为它而耗尽,因为执行无限循环的交易最终会由于TRX耗尽而被终止,从而网络恢复正常。
铸造TRX
铸造就是在TRON网络上创建新TRX的过程。只有TRON网络协议可以创建新的TRX,用户不可能创建出TRX。
当一个超级代表在TRON网络上生产一个区块后,一定量的TRX被铸造。对于每个新区块,目前TRON协议将产生16TRX的出块奖励以及160TRX的投票奖励。出块奖励和投票奖励为TRON网络动态参数,可以通过委员会提议来修改。
燃烧TRX
TRX可以通过一个叫做“燃烧”的过程被摧毁。当TRX被燃烧时,它会被永久减除。
TRON网络上的每笔交易都需要消耗带宽或者能量。当账户中带宽或能量不足时,就需要通过燃烧TRX来支付交易所需的资源。TRX的燃烧不但可以有助于降低TRX的通胀,而且还可以防止意外或者恶意的交易占用TRON网络资源。
TRX面额
由于TRON网络上的许多交易涉及到的金额较小,因此TRON网络引入了最小的货币单位sun,许多应用的技术实现都是基于sun进行计算的,TRX和sun的换算如下:
1 TRX = 1000000 sun
TRX转账
转账TRX是一种TransferContract
类型的TRON网络交易,它将TRX从一个账户地址转移到另一个账户地址。下面是使用HTTP API和tronweb SDK转账的示例:
-
HTTP API
下面通过fullnode HTTP接口wallet/createtransaction
创建一个未签名的TRX转账交易:curl -X POST https://api.shasta.trongrid.io/wallet/createtransaction -d '{ "to_address": "TVDGpn4hCSzJ5nkHPLetk8KQBtwaTppnkr", "owner_address": "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR", "amount": 10000000, "visible":true }'
通过上述接口创建好未签名的交易后,还需要对该交易进行签名和广播,最终完成TRX转账,具体请参考交易章节。
-
tronweb SDK
下面通过tronweb创建一个TRX转账交易:const privateKey = "..."; var fromAddress = "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR"; //address _from var toAddress = "TVDGpn4hCSzJ5nkHPLetk8KQBtwaTppnkr"; //address _to var amount = 10000000; //amount,单位为sun //创建一个未签名的TRX转账交易 const tradeobj = await tronWeb.transactionBuilder.sendTrx( toAddress, amount, fromAddress ); //签名 const signedtxn = await tronWeb.trx.sign( tradeobj, privateKey ); //广播 const receipt = await tronWeb.trx.sendRawTransaction( signedtxn ).then(output => { console.log('- Output:', output, '\n'); return output; });
查询TRX余额
-
HTTP API
可以通过fullnode HTTP接口wallet/getaccount
来查询账户的TRX余额信息,返回结果中的balance即为TRX余额,以sun为单位:curl -X POST https://api.shasta.trongrid.io/wallet/getaccount -d '{"address": "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR", "visible": true }'
-
tronweb SDK
下面通过tronweb查询账户的TRX余额:const privateKey = "..."; var address = "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR"; //查询一个账号的信息,通过返回值中的balance得到余额。 var tradeobj = await tronWeb.trx.getAccount( address, ).then(output => {console.log('- Output:', output, '\n');});
Updated 12 months ago