以太坊是世界计算机,这代表它是一个开源的、全球分布的计算基础设施。
- 执行称为智能合约的程序。
使用区块链来同步和存储系统状态以及名为以太币的加密货币,以计量和约束执行资源成本。
- 本质是一个基于交易的状态机。
以太坊平台使开发人员能够构建具有内置经济功能的强大去中心化应用程序。
- 在持续自我正常运行的同时,它还减少或消除了审查第三方界面和交易对手风险。
区块链(公链)发展
区块链1.0:
- 比特币,简单的记账。
区块链2.0:
- 以太坊代表的智能合约平台。
区块链3.0:
- 高性能、大吞吐量、开发者友好、用户友好。
以太坊组成部分
P2P网络:
- 以太坊在以太坊网络上运行,该网络可在TCP端口30303上寻址,并运行一个名为
DEVp2p
的协议。交易:
- 以太坊交易是网络消息,其中包括发送者、接收者、值和数据的有效载荷。
以太坊虚拟机(EVM):
- 以太坊状态转换由以太坊虚拟机(
EVM
)处理,这是一个执行字节码(机器语言指令)的基于堆栈的虚拟机。数据库(
BlockChain
):
- 以太坊的区块链作为数据库(通常是
LevelDB
)本地存储在每个节点上,包含序列化后的交易和系统状态。客户端:
- 以太坊由几种可互操作的客户端软件实现,其中最突出的是
Go-Ethereum(Geth)
和Parity
。
以太坊重要概念
账户(Account):
- 包含地址、余额和随机数,以及可选的存储和代码对象。
普通账户(EOA):
- 存储和代码均为空。
合约账户(Contract):
- 包含存储和代码。
地址(Address):
- 一般来说,这代表一个EOA或者合约,它可以在区块链上接收或发送交易。
- 更具体地说,它是ECDSA公钥的
Keccak
散列的最右边的160位。交易(Transaction):
可以发送以太币和信息。
向合约发送的交易可以调用合约代码,并以信息数据为函数参数。
向空用户发送信息,可以自动生成以信息为代码块的合约账户。
Gas:
- 以太坊用以执行智能合约的虚拟燃料。
- 以太坊虚拟机使用核算机制来衡量
Gas
的消耗量并限制计算资源的消耗。
以太坊货币
以太坊的货币单位称为以太(
Ether
),也可以表示为ETH
或者符号Ξ(希腊字母柯西)。
以太币发行规则
挖矿前(
Pre-mine,Genesis
):
- 为众筹发行了大约7200万以太币。
- 这些币被称为矿前。
- 众筹阶段之后,以太币每年的产量基本稳定,被限制不超过7200万的25%。
挖矿产出(
Mining
) :
区块奖励(
Block Reward
)。叔块奖励(
Uncle Reward
)。叔块引用奖励(
Uncle Referencing Reward
)。从PoW转换为PoS后,股权证明机制将使用
Casper
协议,以太币发行率将大大低于GHOST协议下的发行率。
以太坊钱包
以太坊钱包是我们进入以太坊系统的门户,包含了私钥,可以代表我们创建和广播交易。
常见的钱包:
MetaMask:
- 一个浏览器扩展钱包,可以在浏览器中运行。
Jaxx:
- 一款多平台、多币种的钱包,可在手机、电脑等各种操作系统上运行。
MyEtherWallet(MEW):
- 一个基于Web的钱包,可以在任何浏览器中运行。
Emerald Wallet:
- 旨在与ETC配合使用,但与其他基于以太坊的区块链兼容。
Remix工具
Remix
是一个在线的以太坊合约开发IDE
(也提供桌面版、VSCode
插件版等版本),界面同VSCode
类似。可以创建
.sol
合约文件,使用Solidity
语言编写合约代码,并通过内置的Solidity
编译器进行编译和语法检查。
Remix
还提供调试工具,可以逐步执行合约代码进行调试。
- 还可以通过
Remix
将合约部署到以太坊测试网络或主网上,进行全面的测试和验证。在线
Remix
地址:https://remix.ethereum.org/