引言
区块链是由人类杰出科技成果组合而成的全新架构,对于生产关系的变革有巨大的潜力。数与科技团队致力于在实践中探索更加开放的加密经济基础设施,我们将逐步拆解主流区块链的底层技术细节,并且尝试将碎片化的区块链知识整理成树状知识图谱分享给社区,也欢迎有兴趣的朋友一起加入。
Cosmos是一套成熟且高可用区块链开发框架,拥有模块化设计、基于Golang开发、支持跨链协议等特点,是目前比较主流的区块链开发框架。通过Cosmos SDK,开发者可以快速构建出属于自己的区块链,高效地进行一系列个性化开发。
本文为Cosmos文档翻译系列第五篇,点击查看往期内容《剖析 Cosmos SDK 应用程序,Part 1:全节点与核心文件》
创建
Transaction创建
命令行界面是主要的应用程序界面之一,Tx可以由用户输入以下命令来创建,其中[command]是Tx的类型,[args]是相关参数,[flags]是相关配置例如gas price:
此命令将自动创建Tx,使用帐户的私钥对其进行签名,并将其广播到其他节点。
创建Tx有一些必需的和可选的参数,其中--from指定该Tx的发起账户,例如一个发送代币的Tx,则将从 from指定的账户提取资产。
Gas 和 Fees
此外,用户可以使用这几个参数来表明他们愿意支付多少fee:
-
--gas 指的是gas的数量,gas代表Tx消耗的计算资源,需要消耗多少gas取决于具体的Tx,在Tx执行之前无法被精确计算出来,但可以通过在--gas后带上参数auto来进行估算。
-
--gas-adjustment(可选)可用于适当的增加 gas ,以避免其被低估。例如,用户可以将gas-adjustment设为1.5,那么被指定的gas将是被估算gas的1.5倍。
-
--gas-prices 指定用户愿意为每单位gas支付多少fee,可以是一种或多种代币。例如,--gas-prices=0.025uatom, 0.025upho就表明用户愿意为每单位的gas支付0.025uatom 和 0.025upho。
-
--fees 指定用户总共愿意支付的fee。
所支付fee的最终价值等于gas的数量乘以gas的价格。换句话说,fees = ceil(gas * gasPrices)