星球日报
搜索
手机客户端
iPhone · Android
公众号
微信公众号

用对这30种秘密武器, 你也能成为区块链高手!

2018-12-23

新工具不仅提升效率,还可为前人所不能。

编者按:本文来自CSDN(微信号:CSDNnews),作者:CSDN,Odaily星球日报经授权转载。

用对这30种秘密武器, 你也能成为区块链高手!

古罗马,“乘法”是只有御用数学家才能理解的深奥概念——而当阿拉伯数字出现,孩童亦能于纸上演算。

新工具不仅提升效率,还可为前人所不能。作为活跃开发领域之一,区块链新技术、工具、平台、语言与框架层出不穷,然而面对纷繁复杂的选择,开发者难以面面俱到。

本文将对区块链开发使用的技术、工具、语言、平台做一次全景扫描,并对其应用状况进行分类。点评来自迅雷链总工程师来鑫,京东区块链 JD Chain 首席架构师黄海泉,百度区块链系统部资深研发工程师荆博,以及腾讯区块链技术负责人张建俊。

用对这30种秘密武器, 你也能成为区块链高手!

用对这30种秘密武器, 你也能成为区块链高手!

工具与框架篇

Ethers.js 是针对以太坊钱包功能完整实现的工具包,其 API 文档十分详尽。

Truffle 用于开发合约工程的框架,是一套本地集成开发环境和编译测试调试工具。在 Truffle 提供的开发环境里,整合了前端实例化合约的方法,可以很便捷的调用合约功能。另外还有各种 box 支持开箱即用,整合了前端应用调用合约工程的途径。

Geth 是一个以太坊客户端,用 Go 语言编写,它是目前最常用的以太坊客户端,有着丰富的 API ,不过没有可视化操作界面。可以与 Mist 配合来进行以太坊智能合约的开发调试。

Solc 是以太坊官方提供的 Solidity 编译工具。

OpenZeppelin 是已实现的一系列经安全验证的合约工具和 ERC 标准合约库,开发者可以通过继承这些合约和 libray 方便的进行合约开发。

Mist 是以太坊 PC 钱包,可以选择连接不同的网络。包含账户管理、交易、调用合约、部署合约以及部分 DApp 功能的调用。针对以上功能所提供的界面化操作极大的方便了普通用户发送交易和调用合约。

使用 Mist 可以轻松连接以太坊测试网络,并支持开发、部署、调试智能合约。对开发者非常友好。

Remix 是一个集成的编写部署调试合约的浏览器 IDE ,可以在 remix 提供的浏览器页面快速编写部署合约,支持正式和测试网络连接、静态检查、本地调试、交易记录、事件和日志查询等功能。另外结合 Remixd 提供的 ws 服务可以连接本地文件进行开发。对兼容以太坊智能合约的链平台来说,Remix 是非常好用的合约编辑、测试、部署工具,用户众多,已经比较成熟。

Docker 在区块链中有多种用途,包括用于 BaaS 服务中作为实现动态节点管理的基础组件,在 Fabric 作为智能合约的运行容器等。

RocksDB 是一种 NoSQL 数据库,具有高性能和使用简单的特点,许多区块链项目都以 RocksDB 作为底层的存储数据库。

MyEtherWallet 是一个很受欢迎的网页版以太坊在线钱包,具有丰富的资产管理,账户备份功能。对于不想在本地安装钱包客户端,存储全量区块信息的用户来说,是一个不错的选择。曾经因为 DNS 劫持的问题,导致一些用户访问了钓鱼网站,损失了大量以太币资产。MyEtherWallet 代码开源,它不会存储用户的钱包信息账号,就算有一天 MyEtherWallet 网站不能使用,你也可以通过钱包的私钥和密码在其他钱包上找回你的钱包账号,可放心使用。

MetaMask 是一款在谷歌浏览器 Chrome 上使用的插件类型的以太坊钱包,该钱包不需要下载,只需要在谷歌浏览器添加对应的扩展程序即可,非常轻量级,使用起来也非常方便,不需要下载全量区块信息,也能让小白用户管理自己的数字资产。对于以太坊Dapp 的普及和传播起到了非常大的作用。当年的以太猫游戏的火爆,Metamask 功不可没。

Embark 目前集成了  EVM  区块链(以太坊)、去中心化存储( IPFS ) 和去中心化通信平台( Whisper 和 Orbit ),部署支持 Swarm,方便开发者搭建自己的区块链应用。

Ganache 是Truffle 官方推荐使用的客户端之一(另一个是 Truffle 内置的 Truffle Develop )。

以太坊联合创始人 Gavin Wood 认为,所有人都从头构建网络和共识代码,非常浪费精力。使用 Substrate 来构建新项目,开发者所要做的,就是在代码调用少量函数,就能获得各种密码学模板,以及定制、搭建和发布新区块链所需要的方方面面,“ Substrate为区块链开发者提供最大限度的自由,花费最少的精力”。

关系数据,如 MySQL 在一些区块链系统中用作记录系统对象的关联关系,以便提供比 NoSQL 更丰富的查询能力。但关系数据库的灵活性、伸缩性不好,并不太适合区块链这类数据单调递增的场景,在数据量增长上来之后对关系数据库的运维管理复杂,因此不推荐使用,建议考虑其它的替代方案。

曾经广泛使用的 EtherScripter 已被淘汰,Embark、Truffle 是其替代者。

用对这30种秘密武器, 你也能成为区块链高手!

技术篇

GOSSIP 是一种消息通讯算法,广泛用于面向公链的区块链系统中,包括比特币、以太坊等,用于实现点对点通信。

POW 是目前面向公链的众多共识算法中唯一具有安全性证明的算法,在中本聪的论文已论证,并且得到比特币系统的运行所证明。缺点是需要消耗算力。

PBFT 是一种拜占庭容错的共识算法,适合用于面向联盟链的场景,在许多区块链项目上都采用了 PBFT 算法及其变种算法;但原始的 PBFT 算法本身不支持节点的动态增加,在实际应用时需要注意。

用对这30种秘密武器, 你也能成为区块链高手!

语言篇

Java 作为一项成熟的通用语言,掌握开发人员多,生态全面,被广泛运用于各类企业级系统、中间件的开发,在区块链中也被一些项目用做系统开发语言和合约开发语言。

Go 是高效快速的应用逻辑开发语言,编译速度优越,已经有较为强大的基础库,属于新兴语言,很被大家看好。作为一项通用语言,具有内存安全、性能优异的特点,使用用作区块链底层系统的开发语言。由于Go简洁易用的语言特性、功能丰富的代码库以及优异的性能表现,很多区块链底层是用Go语言实现的,Hyperledger Fabric 等项目也主推用 Go 编写智能合约或 DApp,可说 Go语言在区块的应用中已经非常成熟。

Go 的高性能,预编译与语言学习的易上手性,使得它非常适合被用来编写区块链项目。目前,大量的新的区块链项目都是用 Go 来编写。

JavaScript 开发方便,很多区块链项目支持。Lisk支持使用JavaScript来开发智能合约,这使得智能合约的开发对于 Web 开发者来说,变得更加的简单。

Solidity 是以太坊 EVM 虚拟机上编写智能合约的图灵完备语言,也是当前智能合约最实用和使用最广泛的语言,语法类似JavaScript,适用于以太坊及其扩展实现,只能由 EVM 加载执行。但受制于 EVM 包括以太坊本身的扩展性不够等设计缺陷,在开发效率和运行速度上有一定的限制。不过 Solidity 还在不断的发展和更新,可以期待未来更优的使用体验,但如果用于正式的重要的业务中,需要谨慎考虑。

Rust 作为一项通用语言,具有内存安全、性能优异的特点,使用用作区块链底层系统的开发语言。已经有一些区块链项目采用了该语言作为开发语言。但开发人群还相对较少,选择该语言还需要考虑开发生态的成熟度。Rust 在不影响性能的前提下提供的安全特性非常有吸引力,这些安全特性也很适用于区块链开发。如 steem 等区块链项目用 Rust 开发,经过适当的限制后也适用于智能合约开发。Rust 可以被 C 及其它多种语言轻松调用,且由于其高性能特性,非常适合被用来编写区块链相关组件,比如可插拔密码库和共识机制。

作为一项有历史的成熟的经典语言,C++ 通常用于开发偏底层的系统,且不断迭代升级,引入新特性新思想,性能一直较好,但由于语言特性复杂,容易产生内存安全的问题,对开发者要求高,在有其它内存安全的语言可选择的情况下,C++ 不是进行区块系统开发的最优选择。EOS 等项目是用 C++ 开发的,但由于其复杂性,使用时需要非常小心。

另外,学习曲线较陡,使得越来越多的新的区块链项目不再使用C++ 语言来进行编写。但是C++ 高性能和编译特性,使得它仍然会在一些区块链项目的底层开发中发挥作用。

Vyper 是新的以太坊语言,它为开发者提供了 Solidity 的一种替代选择。

已有项目采用 Clojure 编写合约解释器,但学习曲线较为陡峭,现有开发者中,熟练掌握的人相当少,可能会面对缺人或维护困难的窘境。

Red 拥有出色的表达及 DSL 能力,但项目仍在开发中,基础尚不完备。

用对这30种秘密武器, 你也能成为区块链高手!

平台篇

迅雷链平台( Thunder Chain )是高性能、高可靠性、开发方便、技术支持完善的主链平台。

EVM 是以太坊上的智能合约引擎,用于执行  Solidity  的智能合约,它是一个栈式虚拟机,其安全性是还需要完善,众多针对以太坊的攻击方法都是由 EVM 本身的缺陷带来的,虽然爆出的缺陷已经大部分修复,但毕竟 EVM 出现的时间相对还很短,所以还需更多时间来观察其进展。

和普通节点相比,Azure BaaS 节点好处主要是,能让开发者快速建立自己所需的开发环境,能帮助更快地验证自己的概念和模型,工具性更强,便于创建、部署、运行和监控区块链服务。但其实用性还有待验证。

Blockchain Testnet 可用于测试和体验操作。允许 DApp 开发者使用测试网络方便的进行开发和调试,而不必担心在主链上测试导致的费用问题。

Coinbase’s API 的提供者 Coinbase 是全球用户最多的交易所之一。

Tierion 是将区块链用于验证任何数据、文件或过程的平台,应用场景包括文件存在性证明、审计跟踪等,应用场景有限,决定使用这个平台之前请先评估是否跟自己的实际业务场景相匹配。

本文来自投稿,不代表Odaily立场。如若转载请注明出处。

参与讨论

登录后参与讨论

总文章数:


分享至

微信扫一扫分享

0
金融区块链

Copyright 2017-2018 Beijing Star Node Media Culture Co., Ltd.