区块链网站|NFTS BTC教学指南 权威指南|从初学者到高级 专家教你如何入门公链开发

权威指南|从初学者到高级 专家教你如何入门公链开发

广告位

权威指南|从入门到进阶,专家教你上手公链开发

如何选择公链

了解公链的第一步是阅读白皮书。它是公链的灵魂,是推动公链发展的指导性文件。通过阅读白皮书,您可以找到区块链发展的完整愿景和路线图。

白皮书可分为产品白皮书和技术白皮书(或技术黄皮书)。前者倾向于介绍公链的背景和功能愿景,后者更接近于具体模块的可行性论证和技术设计,包括算法和公式。

如何做出选择?公链有自己的定位,它的设计围绕着白皮书中描述的愿景和路线。如果要选择一个公链参与其中,认真阅读白皮书是第一步,我们认同白皮书的技术和非技术愿景。只有这样,我们才能告诉自己,这是我想做的。

对于公链这种基于社区的项目,没有公司招聘那么严格,所以参与公链生态会更开放,所有贡献者都会来者不拒。当然,向公链提交代码或者参与公链的设计,自身的硬实力是不可或缺的。

我能为公链贡献什么?

如上所述,我们选择了一个公链,那么我们可以为这个公链做些什么呢?讨论这个问题,我想从以下两大方面入手:

擅长技术

如果你有技术背景,公链有很多选择。如果你擅长区块链的底层技术,哪怕是模块或者学科,那么恭喜你,你可能是众多公链争相吸引的公链开发者之一;如果你在某个特定领域的背景不是那么强,或者对枯燥的底层算法不是那么感兴趣,不妨尝试做一些区块链上层的应用,因为这些应用就像是整个生态的树叶:只有枝叶繁茂的大树才能吸引人的眼球。

参与底层开发

在看过白皮书或者技术黄皮书的前提下,对公链的技术有所了解。其实通过分析每个公链的核心组成部分,可以总结出以下知识结构。让我们看一看。你对这些技术概念了解多少?

核心技术模块

数据块、交易、账户模型、UTXO密码编码方式:Base64、Base58哈希算法:SHA2、SHA3对称加密:AES椭圆曲线密码私钥、公钥、地址密钥交换算法签名验证P2P网络:Kademlia共识机制一致性算法、POW、POS、DPOS、BFSmart契约智能契约JVM、EVM、WebAssembly是什么关系?如果你清楚的知道以上内容,那么你已经是一个合格的开发者了(至少在我看来)。如果您对某些内容比较熟悉,请选择性地阅读以下内容:

私钥、公钥、地址

私钥:一个BigInteger随机数A公钥:从椭圆曲线上的一个固定点G用几何算法计算出的a*G,其中A是私钥。因为椭圆曲线上几何运算的逆运算非常复杂,私钥可以推导出公钥,但公钥不能反推出私钥地址。一般是公钥的抽象格式。当然,在多签名网络中,一个地址可以对应多个公钥。上述公钥和私钥是指大多数区块链系统中的公钥和私钥。如果你想知道更多,这是一篇好文章,https://www.jianshu.com/p/af6328cc693e.

交易、区块、矿工

事务:用私钥签名的消息体,如传输事务。每一个交易都是可以验证的,每个区块链的节点会存储验证过的交易,并通过P2P网络广播到各个区块:一个区块包含时间戳,一段时间内的多次交易,以及一些验证字段(如当前区块的hash,前一个区块的id等。),还包含了记录这个区块的矿工签名;一段时间内发生的事务是分散无序的,每个节点接收事务的顺序也不一样。因此,需要一种机制,让所有节点通过商定的方式来确定事务的顺序。我们把这种行为叫做分块,我们把这种机制叫做共识机制miner:把一段时间内的交易打包的人,miner负责把所有的交易线性整理出来,先告诉网络发生了什么,再通过分块。Base64、Base58

其实很好理解,Base64基于64个字符,Base58基于58个字符。与Base64相比,Base58不使用数字“0”、大写字母“O”、大写字母“I”、小写字母“L”以及符号“”和“/”。

这样做的主要原因是肉眼很容易识别,输入时不容易出错。因此,目前大部分区块链系统都以Base58为主。当然像以太坊这样的项目甚至直接用十六进制代码。

帐户,UTXO

账户模型和UTXO实际上是记录账户余额的两种数据结构。UTXO的简单说法是,在总额不变的前提下,比如余额A为10,余额B为20,记为(10,20),当B向A转账5时,记为(10,20)=(15,15);而同样的事情,在账户模型下,我们可能会记为{A:15,B:15}。

相比之下,UTXO的可验证性更强,而账户模型的可扩展性更好。比如在账户模型下,更容易实现多重签名(一个账户由多个私钥管理)。

密码学,P2P网络,共识机制,智能契约都属于一言难尽,这里就不赘述了。感兴趣的朋友可以看文章后的推荐读物。

公共开发语言

对于不同的底层公链,开发语言可能不一样,网上也有很多客观的分析。从我们对目前主流公链的主观判断来看,不同语言的使用频率顺序如下(仅从公链底层模块分析):

C GoLang Rust Java Javascript

话说回来,语言毕竟只是一个工具。从核心技术和算法来看,语言的难度不算什么。

不同于社区公司。

公链项目的典型特征是以社群的方式进行,与公司的组织形式有很大不同。没有固定的地域范围,没有语言和国家的限制,很像区块链的网络结构,大家点对点协作工作。

唯一能帮助所有技术贡献者专注的是白皮书、技术文档和技术社区。一个文档定义一个规范,帮助大家用一个具体的规范去开发或者调用,而社区是一个讨论和形成规范的地方。

参与生态建设

如果你对底层技术不是那么擅长,也可以选择做一些不那么低级的事情;更重要的是,其实对于公链来说,底层开发并不需要太多人,而对于主链之上的工具和DApp来说,则是一片巨大的蓝海。

基础设施发展

即使有最好的架构和API设计,公链也离不开几个重要的基础设施来更好地连接开发者和用户,比如:

SDK,IDE: SDK帮助开发者方便地调用主链API,而IDE让开发者可以更好地编写智能合约客户端:无论是管理私钥,还是在链上体验DApp,客户端都是用户的最佳选择。一个方便、简单、安全的客户端,往往是一个公链最大的流量入口。也就是用户聚集的本地block浏览器,DApp统计等信息站点:block浏览器是区块链世界的Google,开发者和用户都离不开公链的汇总信息和统计API。这样的信息网站也是DApp发展的巨大流量入口。

构建在公链上的应用不依赖于集中式服务器,所有sum逻辑都运行在去中心化的网络中,因此得名DApp;通过学习智能合约开发,应用一些主链API和SDK,结合一些必要的前端技能,可以开发出自己的DApp,并快速发布到整个区块链网供用户使用。我们要做的是找到用户的兴趣和痛点,并花时间去实现。

不擅长技术

之前说了很多技术含量,可能会让不懂技术的小伙伴望而却步,但其实区块链并不是一个只属于技术极客的世界。即使你不擅长代码实现,你也可以做很多事情,比如:

优化建议:对于公链开发,很多想法可能不是核心团队提出来的,而是来自于社区的意见收集。几乎所有的公链都有这样一个讨论和整理意见的地方,叫做改进建议,比如比特币的BIPs,以太坊的EIPs。参与方式是先发起议题讨论,社区协调员指定提案编号,然后整理成文件,以固定格式作为提案文件发布。任何人都可以参与自己感兴趣的话题的讨论,或者发起讨论。即使不懂技术,一个好的意见也可能改变公链的未来走向。

技术布道

如果熟悉公链的技术原理和一般设计,可以考虑在保持技术中立和科学严谨的前提下,将自己的想法传播给更多人,以扩大社群的共识范围。这其实是一件伟大而深远的事情。在这个过程中,你会经历思想的碰撞和汇聚,直到一个思想最终影响了后来的很多人。

文件翻译

对于有语言基础的人来说,文档翻译可能是最简单的事情,但是对于社区来说却是非常重要的,因为如前所述,无论是开发者还是用户,进入社区深入了解公链生态的第一步都可能是白皮书或者技术文档。如果语言不是障碍,公链会更容易吸收世界各地的力量。那么,为什么不做一些如此简单而重要的事情呢?

契约、经济及其他理论

传递、传递经济与传递模型

在区块链的世界里,通行证是一种加密管理的、数字的和可流通的权利和利益的证明。通行证经济是指应用通行证进行刺激和流通的经济活动,通行证模式是通行证产生、流通和使用的规则。

智能合同

智能合约是运行在可复制共享账本上的计算机程序,可以处理信息、接收、存储和发送价值。

智能契约是直通模型的实现,一个完整的契约,不仅是编程技术本身,还有一个合理的直通模型,即直通是如何产生、流通和使用的。

智能合约的执行环境是一个沙箱,通过主链的API与外界进行交互。契约的执行环境,也就是我们常说的虚拟机,本质上和JAVA的JVM,以太坊的EVM,EOS或者GXChain的WebAssembly虚拟机是一样的,只是智能契约中可以调用的API是区块链节点本身的数据。

预言机器

如前所述,智能合约是一个沙箱,其能力范围只能通过虚拟机提供的API主动访问节点本身的数据。所以,如果我们希望智能合约访问更多的链外数据,我们需要将这些数据放在链上,并将链外的可信数据放在链上。我们称之为神谕。

预测机器不仅仅是把数据搬到链上那么简单,更重要的是可信。除了技术手段,如数字签名,我们还可以使用多方计算来增加数据的可信度和输入的稳定性。

典型领域的知识和储备

分布式一致性

在分布式计算领域,我们经常讨论强一致性和弱一致性。对于区块链系统,我们通常会实现最终一致性,也就是说,每一笔交易都不是立即确认,而是有一个最终确认的过程。这种最终确认标准和流程是共识机制中研究和设计的重点,也是BFT、PoW、PoS和dpo的主要区别。

TPS和QPS的区别

TPS是指系统每秒处理的事务数量,QPS是指系统的吞吐量。因此,QPS似乎相对宽泛,而TPS是区块链的终极性能指标。

不可能的三角

不可能三角形也被称为三元悖论。在生活的各个方面,我们都面临着鱼与熊掌不可兼得的艰难选择:

比如国际金融领域:资本流动性、汇率稳定性、货币政策独立性,三者不可兼得。为了追求资本稳定和维持汇率稳定,国家需要制定各种经济政策来应对国际经济形态的变化。当前的中美贸易战就是分布式计算领域最直观的例子。CAP,也就是我们常说的一致性、可用性和分区容错,也是一个很难选择的问题。同样,区块链体制中的分权、安全和绩效在社会上一直是一大争议。所以,回到本文的要点,如何选择公链,也许你需要在去中心化、安全性和性能上做出选择。比如追求绝对的去中心化和安全性,不考虑性能,比特币和以太坊社区都是不错的选择,而如果想要合理收敛去中心化的程度以达到更高的性能,基于DPoS和各种XPoS共识机制的公链将是你最好的选择。延伸阅读:值得参考的项目和资料

技术

《比特币白皮书》 https://bitcoin.org/bitcoin.pdf,必读。为了鼓励作者的事业,我们来看看《GXChain白皮书》 https://static.gxchain.org/files/gxchain _白皮书_ v 3.0 _ cn.pdf,它可以最简洁明了地解释密码学这样一个学术问题。当然是Wiki。《椭圆曲线密码学》 https://en.wikipedia.org/wiki/Elliptic-curve_cryptography安全是智能合约最大的敌人。也是这个行业最高级的人最关心的事情之一。《智能合约安全》 https://medium.com/@merunasgrincalaitis/How-to-audit-a-smart-contract-most-dangerous-attacks-in-solidity-AE 402 a 7e 7868如果你看不懂这篇文章对UTXO和account model的解释,你可以看看这篇http://8btc.com/article-4381-1.html非技术。

如果非要从学术上理解“传递经济”的话,的《智能合约》和的《智能合约》作者简介:蓝,工信报研发总监。全栈开发工程师,精通区块链技术,石墨烯社区活跃成员和代码贡献者,5年金融领域经验,13年区块链经验,持续研究和应用区块链技术。曾就职于美国道富银行、51信用卡、大树金融,在密码学、数据库、服务器、移动方面有丰富的实践经验。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/btb/btbjiaoxue/4986.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部