沙僧科技-数字钱包开发-区块链商城开发-智慧城市开发-直销软件开发-app软件开发

全国加盟咨询热线:

18569989555

你的当前位置:主页»区块链新闻»区块链头条»

区块链编程该如何入门?

文章出处:未知 浏览次数:发表时间:2018-07-26
区块链开发看似门槛较高的一个原因是底层综合了P2P网络协议,分布式共识算法,密码学等应用。另一个原因是多如牛毛一般的概念。
我认为有两种意义上的区块链编程,一基于合约型区块链开发的链上DAPP,这是入门区块链编程门槛最低的一种开发方式,你只需要掌握一些基础的合约语言(例如solidity)和前端知识,就可以做出来一款非常不错的DAPP。
二是做区块链底层的链开发,例如区块链主链协议,分布式共识算法,跨链互联等,针对的都是区块链如何实现的协议,这种开发方式最好是从原理开始入门,理解区块链的运行原理,多看主流的区块链的代码,例如比特币,以太坊,BTS。
 
开发入门建议:
1.P2P网络协议层:主流的P2P的应用一般是基于C++写的,建议学习《UNIX网络编程》这本书,可以从基本上了解网络协议的开发流程及步骤。
2.共识层:分布式系统如何达成共识是区块链的核心所在,它决定了区块链的性能问题,《区块链核心算法》这本书非常不错,从代码实现层一层一层的解析各种共识算法的原理以及如何实现,这本书拿生命去推,在此基础上采用何种共识也决定了你的共识算法,加密机制。
3.链上应用:链上API的设计方式决定了链上应用的建立,用区块链去选择一种合适的分布式场景应用时,应根据你以往的项目经验比如做过存储的想做分布式存储,那么就需要把一些存储应用设计到分布式账本上,说简单一点,在区块链上应用的开发也分成服务端和客户端,服务端在链上执行操作,客户端在链上请求操作。
4:钱包:钱包开发建议多看一些钱包的开源代码,个人觉得从代码上理解钱包会更简单一点,当然不一定适合每一个人。
基本的开发步骤都写下来了,做区块链开发建议掌握C++和Golang语言,当然ruby\rust等语言也都可以用,lisk使用js开发的,没有哪一种语言最合适,建议c++/golang的原因是因为开源代码这两种语言的例子很多,可以多看看开源代码。
 
(一)Go-ethereum项目
    开发语言:go语言
    客户端文件:Geth
    界面:命令行
    适用平台:windows、linux和OSX
    功能和特点:该项目是使用最广泛的以太坊客户端,大部分节点都是运行的该客户端,教程和例子也最多,推荐使用,可用于挖矿,组建私有链,管理账号,部署智能合约等常用功能,不可以编译智能合约。
(二)webthree-umbrella项目
    此项目包含3个客户端
    开发语言:c++
    客户端文件:AlethZero、Mix和Eth
    使用平台:windows、linux和OSX
    界面:图形化界面
    功能和特点:该项目严格来说是cpp-ethereum 项目的一个shell,是以太坊基金会的前CTO,Gavin Wood主持编写的,所以人气也很高,易用性也很好。AlethZero是图形化的钱包客户端,对应的是Geth的功能,不过是全图形化的。但是随着后续以太坊基金会主推的图形化钱包Mist的推出,渐渐没落。Mix 是智能合约(以太坊称为DAPP)的开发IDE,可以支持智能合约(DAPP)的编写、调试,部署,全图形化界面,但是目前已经停止开发了,开发组转向了Remix。Eth是C++编写的命令行客户端功能和Geth一样。
(三)Mist项目
    开发语言:JavaScript
    客户端文件:Mist(目前使用Ethereum-Wallet的名称)
    使用平台:windows、linux和OSX
    界面:图形化界面
    功能和特点:该项目是以太坊基金会主推的项目,Mist定位不只是一个钱包,而是将来DAPP(智能合约的应用APP)市场,类似于苹果市场,在这里可以有你的账号,可以浏览、发布和买卖以太坊的DAPP应用。目前因为开发还不够全面,名称暂时显示为Ethereum-Wallet,作用也很简单,就是一个钱包的功能。强烈推荐,未来的主流客户端。
(四)solidity项目
    开发语言:C++
    客户端文件:solc
    使用平台:windows、linux和OSX
    界面:命令行界面
    功能和特点:该项目是以太坊智能合约(DAPP)的编程语言,使用solc作为编译程序,该项目主要用于编译,严格来说是一个基本的编译平台,一般开发可用MIX替代。
(五)browser-solidity项目
    开发语言:C++
    客户端文件:浏览器中显示
    使用平台:windows、linux和OSX
    界面:浏览器界面
    功能和特点:该项目是智能合约浏览器版本的开发环境,可以支持在浏览器中直接开发、调试和编译,对于初学者来说,可以快速上手,不需要安装,非常方便,直接访问地址使用:https://ethereum.github.io/browser-solidity/
(六)pyethereum项目和ethereumj项目
    pyethereum项目是用Python语言编写的以太坊客户端,ethereumj项目是用Java语言编写的以太坊客户端,只是语言不同,和前面GO语言编写的客户端Geth的功能完全相同。
(七)etheminer项目
    开发语言:C++
    客户端文件:ethminer
    使用平台:windows、linux和OSX
    界面:命令行
    功能和特点:该项目是cpp-ethereum项目的一部分,用于和Geth配合进行GPU挖矿,比CPU挖矿效率高100多倍,也可以用于矿池挖矿
希望能帮到你,码农很辛苦要做好吃苦准备。哈哈哈
一 入门比较简单的是以太坊智能合约开发,所需的知识体系
《1》以太坊相关的基础概念,公钥加密系统,旷工,汽油,账户体系
《2》熟悉智能合约开发编程语言solidity
《3》智能合约开发工具,remix,metamask,truffle等
 
 
二 较高难度的是区块链底层开发,需要的知识体系较多,要了解到原理层
《1》密码学基础
《2》共识算法
《3》网络编程(p2p)
《4》c++ golang java编程语言
《5》http rpc接口编程
《6》linux相关知识,环境的部署维护
 
区块链编程是一个很宽泛的问题,目前公开发行的数字货币大概有1400种左右,主要编程语言以c和c++居多。如果想学习区块链编程建议先学好c/c++,然后精读一到两种数字货币的源码,推荐精读比特币和比特股。一边看源码,一边看区块链书籍,这样可以把区块链基础知识掌握的非常牢固。基础打牢以后,根据实际应用场景设计新的区块链产品就不会无从下手了。
 
 

回顶部