【以太坊开发】以太坊开发环境与工具简介

Geth

go-ethereum的简称,由以太坊基金会提供的官方客户端软件,用Go语言编写,用于创建一个本地的测试网络。

Solidity语言

一种高级语言,以太坊编写智能合约最流行的编程语言。在Remix IDE中编写,然后编译成在EVM上可运行的字节码。
更多语法知识,可访问官方中文开发文档

Remix

以太坊官方推荐的智能合约开发IDE,适合新手,可以在浏览器中快速部署测试智能合约。

Web3.js

javascript库,可以用来与一个节点进行交互。
当Solidity合约编译好并且发送到网络上之后,你可以使用以太坊的web3.js JavaScript API来调用它,构建能与之交互的web应用。

Truffle

Truffle 和 Embark 是用于开发以太坊 DApps的两个最常用的框架。 它们抽象出在区块链上编译和部署合同的许多复杂的东西。
Truffle让你可以迅速进入写代码-编译-部署-测试-打包DApp这个流程。(Truffle ['trʌfl] 、Embark [ɪm'bɑrk] )
更多学习,可访问Truffle开发手册

Solc

编译器,用Solidity写好智能合约之后,需要用solc来编译。它是一个来自C++客户端实现的组件。

Gas

可理解成汽油, 在以太坊上执行程序以及保存数据都要消耗一定量的以太币,Gas是以太币转换而成。这个机制用来保证效率。
GasFee = GasUsed * Price
以太坊虚拟机执行的指令消耗单位的个数

合约代码

以太坊不仅仅在链上存储交易数据,它还可以在链上存储合约代码。
在数据库层面,区块链的作用就是存储交易数据。那么给候选者投票、或者检索投票结果的逻辑放在哪儿呢? 在以太坊的世界里,你可以使用Solidity语言来编写业务逻辑/应用代码(也就是合约:Contract), 然后将合约代码编译为以太坊字节码,并将字节码部署到区块链上:



合约部署后,当需要调用这个智能合约的方法时,只需要向这个合约账户发送消息(交易)即可,通过消息触发后智能合约的代码就会在EVM中执行了。

Parity

以太坊挖矿用。Parity 是对以太坊协议的另一个很好的实现,并且是用Rust编程语言编写的。 这是一个由一家名为Parity Inc的公司来维护的非官方客户端。任何人都可以实现这个客户端软件,并加入以太坊网络。

Testrpc

用geth可以创建一个测试网络,另一种更快的创建测试网络的方法是使用testrpc,它使用了Python编写的客户端pyethereum
。Testrpc可以在启动时帮你创建一堆存有资金的测试账户。它的运行速度也更快因此更适合开发和测试。你可以从testrpc起步,然后随着合约慢慢成型,转移到geth创建的测试网络上 - 启动方法很简单,只需要指定一个networkid:geth --networkid "12345"。
补充:Testrpc把所有东西都存在内存里,因此,节点一旦重启,将丢失以前的状态。

Ganache

Ganache的前身就是TestRPC,提供了两个版本:一个CLI版本,一个图形界面版本,可按需要安装。

ABI

ABI是Application Binary Interface的缩写,应用二进制接口,可以通俗的理解为合约的接口说明。当合约被编译后,那么它的abi也就确定了。表现形式为json。
参考:https://zhuanlan.zhihu.com/p/27574211

Whisper(耳语)

一个去中心化的通信协议,它支持广播、用户到用户、加密信息等,但不用于传输大数据。点到点信息协议,将被整合到以太浏览器。

Swarm(蜂群)

一个去中心化的文件系统。为静态web托管而优化的点到点数据存储协议,将被整合到以太浏览器。

DAG

DAG(Directed Asyclic Graph)意思是有向无环图,所谓有向无环图是指任意一条边有方向,且不存在环路的图。相比较于比特币的最长链共识, DAG 将最长链共识改成最重链共识机制, 通过交易权重与节点间建立局部共识来确认新的交易,将工作量证明巧妙的和每一笔交易绑定一起,不但打破了目前比特币挖矿集中化的问题,而且大幅度提升了整个分布式网络的吞吐能力,带来极低的交易成本。


Influa

eth钱包公网的免费rpc接口地址,使用web3.js直接调用的api地址

以太坊DAPP收藏

Web:https://github.com/ConsenSys/eth-lightwallet
Android:https://github.com/walleth/walleth
IOS: https://github.com/ethers-io/EthersWallet-ios

你可能感兴趣的:(【以太坊开发】以太坊开发环境与工具简介)