博客
关于我
比特币现金社区推出OP_RETURN的4字节前缀指南
阅读量:141 次
发布时间:2019-02-28

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

u=733445390,715658593&fm=11&gp=0.jpg

从5月15日比特币现金顺利完成硬分叉升级到现在已经有一个多星期的时间。我们都知道在比特币现金的这次升级中有一个改动就是将OP_RETURN的大小扩充到220字节。这一改动已经给一些应用如Memo、Blockpress等带来了好处。通过这一改变用户能够在上面发布更长的内容。而且现在用户在Memo和Blockpress发布的内容已经能够在blockchair.com区块浏览器中通过搜索文本查找出来。

虽然OP_RETURN容量的增加给比特币现金带来了很多活力,但是Lokad的创始人也就是比特币现金Terab项目的主要负责人Joannes Vermorel 却为了比特币现金的长远发展提出了“OP_RETURN的4字节前缀指南”。他认为,区块链是共享资源,虽然BCH的可扩展性是一个可以解决的问题,但是社区需要一些原则来避免一些不必要的复杂情况。由于OP_RETURN数据在所有的参与者之间都是共享的,但这并不能保证每一个参与者都会默认保留这些数据。因此OP_RETURN的4字节前缀指南的存在将能够帮助用户根据指定的4字节前缀选择性地保留消息。

OP_RETURN的4字节前缀指南是什么?

OP_RETURN的4字节前缀指南又称为协议标识符(或协议ID)。主要内容是:所有使用Bitcoin Cash实现的协议在使用OP_RETURN时应该首先指定一个唯一的4字节前缀,作为自己协议的ID,以后所有与自己的协议相关的消息中都会被预先添加这4字节前缀。通过这个方案可以根据协议的不同对OP_RETURN上的信息进行分类,而且还可以简化协议之间的可操作性。随着OP_RETURN使用的增长,协议之间的冲突将会增加。虽然这些冲突不会危及BCH本身,但是可以避免因为协议覆盖而进行的一些不必要的操作。

详细的4字节前缀:

OP_RETURN操作码配合OP_PUSHDATA序列:

OP_RETURN

OP_PUSHDATA [data]

...

OP_PUSHDATA [data]

在BCH中,多个OP_PUSHDATA被视为标准交易。

这个指南建议插入0x04 [protocol ID]作为指定协议标识符的第一个元素。即:

OP_RETURN

0x04 [protocol ID]

OP_PUSHDATA [data]

...

OP_PUSHDATA [data]

为了提高区块链上的过滤性能,协议ID将出现在前面:首先选择协议ID将能够尽快的跳过数据。

此外,协议ID值的位数必须高于0x00 00 00 0F且低于0x10 00 00 00。保留较低的范围是因为标识符会与特殊的推送代码相冲突,并且会对一小段协议提供有利的处理。保留较高的范围是为了未来这个指南调整之后能够兼容现行指南。

为什么前缀要用4字节?该指南表示选择4字节作为前缀一是因为4字节能够允许比特币现金拥有超过2.6亿个不同的协议,这个数量已经是足够的,二是4字节占用的空间较小,对OP_RETURN的整体可用性影响小。

最后要强调的一点是OP_RETURN的4字节前缀指南并不是一个强制性的方案,而是可选择的,可以遵循也可以不遵循。如果使用该方案,还将会获得来自Terab项目的某种支持。

转载地址:http://rkvc.baihongyu.com/

你可能感兴趣的文章
Nacos和Zookeeper对比
查看>>
Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
查看>>
Nacos基础版 从入门到精通
查看>>
Nacos如何实现Raft算法与Raft协议原理详解
查看>>
Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
Nacos实战攻略:从入门到精通,全面掌握服务治理与配置管理!(上)
查看>>
Nacos实战攻略:从入门到精通,全面掌握服务治理与配置管理!(下)
查看>>
Nacos心跳机制实现快速上下线
查看>>
nacos报错com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
查看>>
nacos服务提供和发现及客户端负载均衡配置
查看>>
Nacos服务注册与发现demo
查看>>
Nacos服务注册与发现的2种实现方法!
查看>>
nacos服务注册和发现原理简单实现案例
查看>>
Nacos服务注册总流程(源码分析)
查看>>
nacos服务注册流程
查看>>
Nacos服务部署安装
查看>>
nacos本地可以,上服务器报错
查看>>
Nacos注册Dubbo(2.7.x)以及namespace配置
查看>>
Nacos注册中心有几种调用方式?
查看>>
nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
查看>>