Java区块链用户信息校验_区块链节点交易的独立校验

当一个节点接收到一个新的区块,它将对照一个长长的标准清单对该区块进行验证,若没有通过验证,这个区块将被拒绝。

▷交易的语法和数据结构必须正确。

▷输入与输出列表都不能为空。

▷交易的字节大小是小于 MAX_BLOCK_SIZE 的。

▷每一个输出值,以及总量,必须在规定值的范围内 (小于 2,100 万个币,大于0)。

▷没有哈希等于 0,N 等于-1 的输入(coinbase 交易不应当被传递)。

▷nLockTime 是小于或等于 INT_MAX 的。或者 nLocktime and nSequence 的值满足 MedianTimePast(译者注:MedianTime 是这个块的前面 11 个块按照 block time排序后的中间时间)

▷交易的字节大小是大于或等于 100 的。

▷交易中的签名数量(SIGOPS)应小于签名操作数量上限。

▷解锁脚本( scriptSig )只能够将数字压入栈中,并且锁定脚本( scriptPubkey )必须要符合 isStandard 的格式 (该格式将会拒绝非标准交易)。

▷池中或位于主分支区块中的一个匹配交易必须是存在的。

▷对于每一个输入,引用的输出是必须存在的,并且没有被花费。

▷对于每一个输入,如果引用的输出存在于池中任何别的交易中(译者注:这笔输入引用的输出有人家自己的输入,不是你),该交易将被拒绝。

▷对于每一个输入,在主分支和交易池中寻找引用的输出交易。如果输出交易缺少任何一个输入,该交易将成为一个孤 立的交易。如果与其匹配的交易还没有出现在池中,那么将被加入到孤立交易池中。

▷对于每一个输入,如果引用的输出交易是一个 coinbase 输出,该输入必须至少获得 COINBASE_MATURITY(100)个确认。

▷使用引用的输出交易获得输入值,并检查每一个输入值和总值是否在规定值的范围内 (小于 2100 万个币,大于 0)。

▷如果输入值的总和小于输出值的总和,交易将被中止。

▷如果交易费用太低以至于无法进入一个空的区块,交易将被拒绝。

▷每一个输入的解锁脚本必须依据相应输出的锁定脚本来验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值