当前位置: 首页 > news >正文

比特币代码分析7 交易校验

每一个收到交易,比特币节点都验证该交易,有效的交易将被传递到各个附近节点,这将确保只有有效的交易才会在网络中传播, 而无效的交易将会在第一个节点处就被废弃。
校验选项列表:
每一个节点在校验每一笔交易时,都需要对照一个长长的标准列表
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

相关文章:

  • rsync + inotify 数据实时同步
  • JQuery each循环跳出和结束
  • 从paxos到zookeeper 分布式一致性原理与实践
  • 「CH2101」可达性统计 解题报告
  • java websocket学习
  • 1600802047 android 第三次作业(音乐播放器)
  • bzoj 2555 SubString——后缀自动机+LCT
  • BZOJ3238 [Ahoi2013]差异
  • 使用Java代码自定义Ribbon配置
  • CephFS 文件系统应用
  • 第二冲刺阶段第十三天
  • 近似推断---期望传播
  • 联合国儿童基金会投资六家区块链初创企业,目标是解决“全球性挑战”
  • MaxCompute新功能发布
  • 127.0.0.1 和 0.0.0.0 地址的区别
  • CODING 缺陷管理功能正式开始公测
  • Computed property XXX was assigned to but it has no setter
  • Laravel核心解读--Facades
  • Ruby 2.x 源代码分析:扩展 概述
  • vue-loader 源码解析系列之 selector
  • Windows Containers 大冒险: 容器网络
  • 包装类对象
  • 将回调地狱按在地上摩擦的Promise
  • 浅谈web中前端模板引擎的使用
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 通信类
  • 消息队列系列二(IOT中消息队列的应用)
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 原生 js 实现移动端 Touch 滑动反弹
  • ###C语言程序设计-----C语言学习(6)#
  • #define、const、typedef的差别
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (二十三)Flask之高频面试点
  • (分类)KNN算法- 参数调优
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (十一)手动添加用户和文件的特殊权限
  • (四)模仿学习-完成后台管理页面查询
  • (正则)提取页面里的img标签
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET MVC第三章、三种传值方式
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .net6Api后台+uniapp导出Excel
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [1] 平面(Plane)图形的生成算法
  • [16/N]论得趣
  • [20150707]外部表与rowid.txt
  • [AIGC] 开源流程引擎哪个好,如何选型?