虚拟货币购买推荐:点击进入,一、交易的独立验证钱包软件通过收集UTXO、提供适当的解锁脚本,然后构造分配给新所有者的新输出来创建交易。
虚拟货币购买推荐:点击进入,一、交易的独立验证
钱包软件通过收集UTXO、提供适当的解锁脚本,然后构造分配给新所有者的新输出来创建交易。然后,产生的交易被发送到比特币网络中的相邻节点,以便它可以在整个比特币网络中传播。但是,在向其邻居转发交易之前,每个接收交易的比特币节点都会首先验证该交易。这确保了只有有效的交易通过网络传播,而无效的交易在遇到它们的第一个节点被丢弃。
二、每个节点核对每笔交易的标准
1、交易的语法和数据结构必须正确。
2、输入或输出列表都不是空的。
3、以字节为单位的交易大小小于MAX_BLOCK_SIZE。
4、每个输出值以及总数必须在允许的值范围内(小于21m硬币,大于0)。
5、所有的输入都没有hash=0,N=–1。
6、nLockTime小于或等于INT_MAX。
7、以字节为单位的交易大小大于或等于100。
8、交易中包含的签名操作数小于签名操作限制。
9、解锁脚本(scriptSig)只能在堆栈上推送数字,锁定脚本(scriptPubkey)必须匹配isStandard形式,但这会拒绝“非标准”交易。
10、池中或主分支的块中必须存在匹配的交易。
11、对于每个输入,如果引用的输出存在于池中的任何其他交易中,则必须拒绝该交易。
12、对于每个输入,在主分支和交易池中查找被引用的输出交易。如果任何输入缺少输出交易,这将是一个孤立交易。如果池中不存在匹配的交易,则添加到孤立交易池中。
13、每个输入如果引用的输出交易是币库输出,需要至少有100个COINBASE_MATURITY确认。
14、对于每个输入,引用的输出必须存在,并且不能已经被花费。
15、使用引用的输出交易获取输入值,检查每个输入值以及总和是否在允许的值范围内(小于2100万个硬币,大于0)。
16、如果输入值之和小于输出值之和,则拒绝。
17、如果交易费用太低,无法进入空区块,则拒绝。
18、每个输入的解锁脚本必须根据相应的输出锁定脚本进行验证。
这些条件可以在比特币参考客户端的AcceptToMemoryPool、CheckTransaction和CheckInputs函数中详细查看。需要注意,条件会随着时间的推移而变化,以应对新类型的拒绝服务攻击,或者有时会放宽规则以包括更多类型的交易。通过在接收到每个交易时以及在传播之前独立验证每个交易,每个节点都会构建一个有效(但未经确认)的交易池,称为交易池、内存池或内存池。
菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。
版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理
Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2022003375号-1
本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源