最近即将在6.9-6.10在特区深圳举行NEO区块链挑战赛——快速检索地址与余额,谁的入库最快就能拿走主网150GAS奖励。
那么看到这篇文章你就离奖金不远了!
本文正是对应的VIP一对一辅导。
且100%免费!
1
首先,我们来看下竞赛的要点:
获取数据
你需要了解如何通过NEO CLI RPC接口获取块数据
你需要了解NEO块block的基本结构
NEO余额
你需要了解UTXO模型,这是最重要和最难的一点
你需要了解NEO转账类交易Tx的基本结构
NEO精度为0,即不存在小数表示的NEO(已讲完)
主网
正式的NEO链,每个块block都有巨量的交易Tx(已讲完)
不能重复(不讲)
不能遗漏(不讲)
指定地址(不讲)
输出CSV(不讲)
越快越好(不讲)
语言不限(不讲)
2
接下来,开始辅导:
获取块Block数据
调用方法说明见:
http://docs.neo.org/zh-cn/node/cli/api/getblock2.html
输入块高度,返回块详细数据
块block结构
交易TX结构
Vin与Vout即为计算UTXO的关键
Vin结构
txid:上次拿到钱的交易编号txid
vout:上次拿到钱的交易TX中第几个输出vout(来源)
Vout结构
n:本输出vout再本次次交易tx中排第几个
asset:交易了什么资产(主网NEO资产ID为0xc56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b)
value:资产交易了多少金额
address:谁拿了资产
*特别提示:一般最后一个输出vout为找零输出,金额为你的总票面减去应付金额。
Vout与Vin关系
每一个输入Vin都必须来源于之前块某一个或多个的输出Vout
所有输出Vout金额之和(+系统费Sysfee+网络费Netfee),等于所有Vin金额之和。
理解UTXO模型
UTXO模型你可以理解为一套“数量守恒”纸币系统,纸币在交易中可以随意销毁和制造,但是总量永远保持不变(NEO永远为一个亿)
一个例子说明UTXO模型下的交易:
需求:A1地址要给A2地址转账2个NEO
处理:
A1看了看他的钱包(所有可用的Vout),有10NEO,5NEO,1NEO三张纸币
A1拿出一张面值为5NEO的纸币(Vout),将它烧了(烧了的粉末即为5NEO的Vin)
A1用5NEO粉末,制造了2张新的纸币,一张2NEO(Vout),一张3NEO(Vout)
将那张2NEO的纸币给A2,将3NEO那张纸币重新放回了自己的钱包(交易完成)
辅导结束,下课。
领取专属 10元无门槛券
私享最新 技术干货