什么是EthereumNode
“Ethereumnode”是用来描述与Ethereum网络交互的程序的术语。以太坊节点可以是任何设备,从简单的移动手机钱包应用程序到存储整个区块链副本的计算机。
Ethereum网络中存在很多类型的节点,而每个节点也都以某种方式充当通讯站。
Ethereumnode的工作原理
Ethereum不同于Bitcoin,并不存在单一的程序来作为参考实现。在Bitcoin生态系统中,“比特币核心”是主要节点软件,而在Ethereum黄皮书中则存在一系列的单独程序。目前使用最多的是Geth和Parity。
Ethereumfullnodes
如果你想要在Ethereum网络中独立验证区块链数据,那么就需要使用之前提到的软件来运行全节点。
该软件会通过其他节点下载区块,并验证其中所包含的交易是否正确。软件还将运行所有已调用的智能合约,以确保你收到信息与其他节点相同。如果正常运行,网络中每个节点的设备上都会存有相同的区块链副本。
全节点对于Ethereum的运行至关重要。如果不存在遍布全球的众多节点,则网络将会丢失它的抗审查与去中心化特性。
Ethereumlightnodes
全节点的运行允许你直接为网络的健康和安全做贡献。但是,全节点通常需要单独的机器来运行和维护。而对于无法运行全节点的用户,轻节点则是更好的选择。
顾名思义,轻节点都是轻量级的——它们需要更少的资源且占用更小的空间。所以,可以在手机或手提电脑等轻便式设备上运行。然而这些代消耗也是有代价的——它们并不是完全的自给自足。也就说它们不是整链同步,因此就需要全节点来提供相关信息。
轻节点客户端在零售商、服务商以及用户中相当流行。目前已被广泛用于收付款领域中。
Ethereum挖矿节点
挖矿节点既可以是全节点客户端也可是轻客户端。Ethereum网络中“挖矿节点”这个术语的使用并不像在Bitcoin中那样的深入且广泛,但也还是用来识别那些参与者。
想要对Ethereum进行挖矿,就需要具备一些特殊的硬件。其中最常见的是构建矿机。用户通过矿机将多个链接起来进行高速哈希运算。
通常矿工有两种挖矿选择:一种是单独挖矿。单独挖矿意味着矿工独自工作来创建区块。如果成功,就会独享挖矿奖励。另一种则是加入矿池。当矿工加入矿池后,他们就将自己的算力与其他人合并起来。这样就可以更快地生成区块,但同时也需要与矿池中的其他成员分享奖励。
Ethereum节点的运行条件
区块链一个最重要的特性就是开放性。这就意味着任何人都可以运行Ethereum节点,并完成交易和区块的验证工作。
与Bitcoin一样,也有很多企业提供了即插即用的Ethereum节点。此种设备对于那些只想启动并运行单一节点的人们来说非常便利,但弊端是需要为此便利支付额外费用。
之前提到过,Ethereum中存在很多类型的节点客户端,诸如Geth和Parity。如果你想要运行自己的节点,就需要掌握这些应用程序的安装方法。
除非你要运行名为“归档节点”的特殊节点,否则消费级的便携式计算机就足够应付Ethereum的全节点运行了。但最好不要日常工作设备,因为节点运行会降低电脑速度。
运行节点时最好保证设备长期在线。倘若节点离线,那么再次联机时就可能花费大量时间来进行同步。因此,最好是选择低成本且易于维护的设备。例如,在RaspberryPi运行轻节点。
Ethereum挖矿条件
不久之后Ethereum网络就将过渡到PoS机制,所以Ethereum挖矿不再是最安全的长期投资方式。也就说明,转变完成之后,Ethereum的矿工们将面临转移到其他网络或卖掉设备的事实。
但目前此种转变尚未完成,所以如果想参与到Ethereum挖矿中,则需要持有特殊的硬件,例如GPUs或ASICs等。想要收益可观,那么定制矿机和廉价电力环境则是必备的。此外,你还需创建一个Ethereum钱包,并配置挖矿软件来使用。这一切都需要大量时间和资金,所以在进入该市场前,请仔细考虑是否做好迎接各种挑战的准备。
EthereumProgPoW解读
ProgPow代表ProgrammaticProofofWork,是Ethereum挖矿算法Ethash的扩展。它使得GPU相比于ASICs更具竞争力。
多年来,在Bitcoin和Ethereum社区中,抗ASIC一直是个饱受争议的话题。目前的Bitcoin网络中,ASIC已经成为一种主要的挖矿力量。
在Ethereum网络中,虽说存在ASICs,但并不是主流,大部分矿工仍在使用GPUs。然而,随着越来越多公司将EthereumASIC矿机引入到市场,此种状况很快会有所改变。然而ASICs到底存在什么问题呢?
一方面,ASICs会明显降低网络的去中心化。如果GPU矿机无法盈利,那就必须关闭它的挖矿操作,而此时算力只集中在少数矿商手中。此外,ASIC芯片的开发是相当昂贵的,只有少数的公司会具备此能力和资源。而此种现状可能会导致Ethereum的矿业集中在少数公司手中,形成一定程度的行业垄断。
自2018年以来,ProgPow的集成问题一直都是饱受争议。有些人认为它对于Ethereum生态系统是有益的,而也有一些人则表示它可能会导致硬分叉。随着PoS机制的到来,ProgPoW是否可在网络上实施将逐渐显现。
Ethereum的软件开发者
Ethereum网络与Bitcoin是一样的,都是开源的。任何人都可以参与开发协议,或构建应用程序。而且,Ethereum开发者社区也是区块链领域中最大研发团体。
AndreasAntonopoulos,GavinWood的MasteringEthereum,以及Ethereum.org的DeveloperResource等资源都是新进开发者们很好的选择。
Solidity简介
智能合约的概念是在20世纪90年代被首次提出,而目前在区块链领域中的应用却带来了一系列全新的挑战。2014年由GavinWood提出的Solidity已经成为Ethereum上智能合约开发的主要编程语言。语法与Java、JavaScript以及C++类似。
本质上来说,就是开发者可通过Solidity语言,来编写可分解为以太坊虚拟机能够理解的指令代码。你可以通过SolidityGitHub来了解该语言的工作原理。
对于Ethereum开发者来说Solidity并不是唯一选择。还有一种比较流行的语言——Vyper。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。