博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
比特币代码分析7 交易校验
阅读量:6114 次
发布时间:2019-06-21

本文共 610 字,大约阅读时间需要 2 分钟。

每一个收到交易,比特币节点都验证该交易,有效的交易将被传递到各个附近节点,这将确保只有有效的交易才会在网络中传播, 而无效的交易将会在第一个节点处就被废弃。

校验选项列表:
每一个节点在校验每一笔交易时,都需要对照一个长长的标准列表
1、交易语法与数据是否正确
2、输入与输出列表都不能空(>=1)
3、交易大小 < max_block_base_size(1M)
4、0 < 输出值与总量 < 2100万
5、输出点中hash!=0,N!=-1(哈希值不能为零、序列号N不能为-1)
6、nlocktime<int_max
7、交易字节>=100字节
8、解锁脚本(scriptSig)只能够将数字压入栈中,并且锁定脚本(scriptPubkey)必须要符合isStandard的格式 (该格式将会拒绝非标准交易)
9、池中或位于主分支区块中的一个匹配交易必须是存在的
10、对于每一个输入,如果引用的输出存在于池中任何的交易,该交易将被拒绝
11、验证孤立交易
12、coinbase交易需经过100个确认
13、输出必须存在,且未被花费
14、0< 输入值与总量 < 2100万
15、如果输入值的总和小于输出值的总和,交易将被中止
16、交易费用太低,则交易被拒绝
17、每一个输入的解锁脚本必须依据相应输出的锁定脚本来验证

转载于:https://blog.51cto.com/13878196/2327595

你可能感兴趣的文章
LinuxMint 17.1 Cinnamon桌面窗口焦点bug
查看>>
WM8962 HPOUT 信号强度 时间周期
查看>>
【maven】pom.xml文件没错,但是项目有小红叉,Problems中可以看到错误:“Dynamic Web Module 3.0 requires Java 1.6 or newer.”...
查看>>
SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原
查看>>
裴蜀定理(贝祖定理)及证明
查看>>
微信公众平台开发入门:[8]聊天机器人可开发
查看>>
移入页面上空文本框时,让它变为焦点,移出清除焦点
查看>>
impdp导入中碰到的两个问题
查看>>
CSS调试小技巧 —— 调试DOM元素hover,focus,actived的样式
查看>>
tomcat 用AXIS2发布WebService 网站的方法
查看>>
PMON主动调用的频率控制
查看>>
sqlalchemy 的 raw sql 方式使用示例
查看>>
[家里蹲大学数学杂志]第432期Hardy type inequalities
查看>>
Spring MVC 4.2 CORS 跨域访问
查看>>
小计生产数据库事故--缺少where的update
查看>>
谁偷走了我们的时间?
查看>>
nginx 配置 getsimplecms 配置文件
查看>>
23.8. DHCP
查看>>
[20170410]11G ora_sql_txt是否有效.txt
查看>>
开源Math.NET基础数学类库使用(04)C#解析Matrix Marke数据格式
查看>>