关于区块链BCH的入门必备知识

2018-6-1号,盖茨实验室筹备的全国BCH极客大赛在杭州举办,做为盖茨实验室的技术负责人为了给参加比赛的参赛选手(刚学习区块链的)一个技术支撑和指导,下降没有区块链开发的技术难度。专门写了一篇此次比赛的基础技术指导文档,此文档不光是对参加比赛的选手有用,对刚进入区块链想学习的朋友都适用。

                 《BCH GEEK极客大赛技术建议指导》

一.极客大赛主题和背景:区块链无疑是当前最为热门的技术领域之一,近年来,区块链技术逐渐获得世界级金融机构和商业机构的关注,也获得了很多政府组织的关注和扶持,很多大型银行和机构都开展了对区块链技术的研究。区块链上的数据具备不可篡改,永久保存的特性,可以让不一样的合做伙伴创建起分布式的信任机制。

BTC是区块链的鼻祖,是区块链在金融行业的首次创新应用。但随着技术的演进和社会的需求,又新出现了很多区块链的应用,好比BCH(比特币现金)是当前各大区块链社区(币圈)最耀眼的新星,BCH在BTC的基础上进行了一些优化,最大的改进是除开算法优化效率外,还提高了区块的大小(目前BTC在这方面遇到了些瓶颈)。特别是在2018年5月份的升级中,BCH把OP_RETURN元数据从80字节提高到220字节,能够存储更多的信息(虽然目前各个机构对这个数据的扩大有争议,但确确实实世界的领跑者永远属于大胆创新者)。因为OP_RETURN的扩大,为比特币的二层协议开发带来新的生机。
 php

咱们先看看在比特币的OP_RETURN上,你们都干了些啥?有表白、求婚的。这里比特币就见证了一场成功的求婚:
https://blockchain.info/tx/b17a027a8f7ae0db4ddbaa58927d0f254e97fce63b7e57e8e50957d3dad2e66e
https://blockchain.info/tx/e89e09ac184e1a175ce748775b3e63686cb1e5fe948365236aac3b3aef3fedd0
 
2014-09-07Tetsu向其女友Yuki求婚,而其女朋友很爽快的答应了。真是虐狗虐到了比特币上!还有许愿望的,有写家谱的。写到链上后永远不会变。
 

这些是利用OP_RETURN的简单应用(经过钱包就能够实现),若是要实现更多的功能,就须要利用api或者sdk定制开发更高级的应用。
 node

基于BCH的OP_RETURN创新开发的部分应用程序:

* “Memo”基于比特币现金(BCH)区块链平台的社交应用于今年4月15日正式上线。在Memo中用户基于本身的钱包地址建立本身的帐号,而后利用BCH平台的OP_RETURN操做码存储各类数据和交易。

* “币赞”基于微博平台的BCH(Bitcoin Cash)打赏机器人。

* “yours”基于BCH的内容创做者的社交媒体平台。

* “JoyStream”一个赚BCH的BT下载软件
 

以上的项目给你们是一个参考,对于竞赛开发的主题方向,除开基于OP_RETURN的应用开发外,参赛团队还能够根据兴趣选择更多的主题,好比:1.BCH的开发工具;2.BCH协议;3.基于BCH的大数据分析等。本次举办BCH极客大赛的目的,是经过竞赛的形式,将BCH社区的开发者连接起来,可以产生更多基于BCH的应用,提供更多的优秀解决方案。

不少开发者在学习区块链的时候就蒙圈了,所涉及的知识面很广,包括分布式数据存储、挖矿和共识算法、加密算法、点对点传输网络等。但开发创新团队没有必要把底层核心所有了解后才去作开发,掌握一些最少必要知识后就可以开发一个系统出来。这就好比用C++语言编程,开发一个应用只需掌握怎么使用C++就好了,没有必要去把C++的底层实现原理所有研究透。

若是创新团队有创新想法,但对区块链的知识不熟悉,也不要紧,能够短期内掌握区块链的最少必要知识,同时BCH极客大赛主办方会提供技术支撑。如下是为参赛选手整理的基础知识,建议在参加比赛前就安装好基础环境。

二.开发环境搭建:1.BCH的源代码能够做为ZIP存档下载,也能够从GitHub克隆权威的源代码库。 在GitHub比特币页面GitHub bitcoin-abc page上,选择“下载ZIP”。 或者,使用git命令行在系统上建立源代码的本地副本。

2.下载完毕后,打开DOC文档目录,里面有各个操做系统(支持MAC、Windows、Openbsd、Netbsd)的安装方法。安装方法按照文档(build-xxx.md)的指导步骤就好了,若是遇到失败多数都是库或则工具没有装好,能够百度搜索解决。

3.BCH支持三种运行环境,
 python

在主网上实施:节点配置时间比较久,下载数据量大,须要购买币才能进行;

在测试网络(Testnet)上实施:节点配置时间久,下载数据量大;

在本地区块链(Regtest)上实施:不用同步数据。
 

参赛选手根据本身的需求选择运行环境,本次比赛3天开发的应用不成熟,不该该立马放到主网上。比赛主要考察参数选手的项目创新能力,为了简化环境和节省开发时间,建议在Regtest上运行。

自建Regtest的指导参考以下连接:

https://www.felix021.com/blog/read.php?2183

https://blog.csdn.net/chenjaulin/article/details/52449039

三.写入OP_RETURN的方法:写入OP_RETURN可使用createrawtransaction命令行接口或则JSON-RPC接口调用。写入方法参考以下指导:


http://www.8btc.com/yonghengzhilian[url=https://bitcoin.org/en/developer-examples#simple-spendingAPI]https://bitcoin.org/en/developer-examples#simple-spendingAPI[/url]接口列表参考:https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

四.SDK库(仅供参考):bitcore-lib:(JavaScript库): https://github.com/bitpay/bitcore-lib


python-bitcoinlib(python SDk库): https://github.com/petertodd/python-bitcoinlib


btc.com比特大陆提供的接口(go SDk库): https://github.com/cryptostu/bchapi


php-bitcoinrpc(php SDk库): https://github.com/denpamusic/php-bitcoinrpc


bcash(node.js SDk库): https://github.com/bcoin-org/bcash


nakasendo(C++/Java SDk库): https://github.com/nakasendo/nakasendo


调用JSON-RPC的各类语言SDK库参考: https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)

五.其余资料:精通比特币第二版:http://forum.gaici.com/forum.php?mod=viewthread&tid=218&extra=


develop.cash为BCH开发者提供的文档服务:https://develop.cash/wiki/index.php/中文首页

六.工具:十六进制和字符串转换:https://tool.lu/hexstr/git

相关文章
相关标签/搜索