Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

Geth介绍及如何运行以太坊节点(geth api)

区块链 加入收藏
今天给各位分享Geth介绍及如何运行以太坊节点的信息,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!在本文中,我们将看看以太坊节点是什么,并探索最受欢迎的节点之一,称为Geth。为了与区块链进行通信,我们必须使用区块链客户端。客户端是能够与其他客户建立p2p通信信道,签署和广播交易,挖掘,部署和与智能合约交互等的软件。客户端通常被称为节点。以

今天给各位分享Geth介绍及如何运行以太坊节点的信息,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

在本文中,我们将看看以太坊节点是什么,并探索最受欢迎的节点之一,称为Geth。

为了与区块链进行通信,我们必须使用区块链客户端。

客户端是能够与其他客户建立p2p通信信道,签署和广播交易,挖掘,部署和与智能合约交互等的软件。

客户端通常被称为节点。

以太坊节点必须遵循的功能的正式定义在以太坊黄皮书中定义。

黄皮书定义了网络上节点所需的函数,挖掘算法,私钥/公钥ECDSA参数。

它定义了使节点与以太坊客户端完全兼容的全部功能。

基于以太坊黄皮书,任何人都能够以他们认为合适的语言创建自己的以太坊节点实现。

这里可以看到完整的客户端列表。

迄今为止最受欢迎的客户是Geth和Parity。

实现的不同之处主要在于选择的编程语言:Geth使用Golang,而Parity使用Rust。

由于Geth是目前最受欢迎的客户端实现,我们现在将重点关注它。

节点类型当你加入以太坊网络时,你可以选择运行各种类型的节点。

目前的选项是:light节点full节点Archive节点Archive节点是full节点的特例,因此我们不会详细介绍它。

我发现的节点类型的最佳摘要之一是在Stack Exchange上:通常,我们可以将节点软件划分为两种类型:完整节点和轻(重量)节点。

完整节点验证广播到网络上的块。

也就是说,它们确保块中包含的交易(以及块本身)遵循以太坊规范中定义的规则。

它们维护网络的当前状态(根据以太坊规范定义)。

不遵循规则的交易和块不用于确定以太坊网络的当前状态。

例如,如果A尝试向B发送100以太,但A有0个ethers,并且一个块包含此交易,则完整节点将意识到这不遵循以太坊的规则并拒绝该块为无效。

特别是,智能合约的执行是交易的一个例子。

每当在交易中使用智能合约(例如,发送ERC-20代币)时,所有完整节点都必须运行所有指令以确保它们到达区块链的正确的,商定的下一状态。

到达同一个状态有多种方式。

例如,如果A有101个以太,并且在一次交易中将其中的一百个给了B以支付1个以太的gas,那么最终结果将是如果A每次向B发送100个1以太的交易,每次交易支付0.01以太(无视谁收到交易费用)。

要知道B现在是否允许发送100以太,就足以知道B的当前余额是多少。

保留整个交易历史记录的完整节点称为完整归档节点。

这些必须存在于网络上才能保持健康。

节点也可以选择丢弃旧数据:如果B想要向C发送100以太,那么如何获得以太并不重要,只要B的账号包含100以太。

相反,轻节点不会验证每个块或交易,也可能没有当前区块链状态的副本。

他们依靠完整的节点为他们提供缺失的细节(或者只是缺少特定的功能)。

轻型节点的优势在于它们可以更快地启动和运行,可以在更多计算/内存受限的设备上运行,并且不会占用几乎同样多的存储空间。

在缺点方面,其他节点存在信任因素(它根据客户端和概率方法/启发式方法而有所不同,可用于降低风险)。

一些完整的客户端包括具有更快同步的功能(例如,Parity的warp sync)。

安装Geth可以在此处找到Geth在各种平台(Windows,macOS,Linux)上的安装说明。

该列表非常全面,并且保持最新,所以我不会在文章中介绍它。

运行Geth为了启动Geth节点,你唯一需要做的就是转到终端窗口并运行geth。

当你这样做时,你应该得到类似于这样的输出:~ gethINFO [06-03|11:03:13] Maximum peer countETH=25 LES=0 total=25INFO [06-03|11:03:13] Starting peer-to-peer nodeinstance=Geth/v1.8.10-stable/darwin-amd64/go1.10.2INFO [06-03|11:03:13] Allocated cache and file handles database=/Users/mjvr/Library/Ethereum/geth/chaindata cache=768 handles=128INFO [06-03|11:03:13] Writing default main-net genesis blockINFO [06-03|11:03:14] Persisted trie from memory database nodes=12356 size=2.34mB time=48.31016ms gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00BINFO [06-03|11:03:14] Initialised chain configuration config="{ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 Constantinople:Engine: ethash}"INFO [06-03|11:03:14] Disk storage enabled for ethash cachesdir=/Users/mjvr/Library/Ethereum/geth/ethash count=3INFO [06-03|11:03:14] Disk storage enabled for ethash DAGs dir=/Users/mjvr/.ethash count=2INFO [06-03|11:03:14] Initialising Ethereum protocolversions="[63 62]" network=1INFO [06-03|11:03:14] Loaded most recent local header number=0 hash=d4e567…cb8fa3 td=17179869184INFO [06-03|11:03:14] Loaded most recent local full block number=0 hash=d4e567…cb8fa3 td=17179869184INFO [06-03|11:03:14] Loaded most recent local fast block number=0 hash=d4e567…cb8fa3 td=17179869184INFO [06-03|11:03:14] Regenerated local transaction journaltransactions=0 accounts=0INFO [06-03|11:03:14] Starting P2P networkingINFO [06-03|11:03:16] UDP listener up self=enode://a4cb08519bc2bceecb8ad421871c624d5212888653bbaee309fda960f3c87ca7aa9855ee14684d521836ae88ad1986b8ca944348e976760d2bd1247ed3ca7628@[::]:30303INFO [06-03|11:03:16] RLPx listener up self=enode://a4cb08519bc2bceecb8ad421871c624d5212888653bbaee309fda960f3c87ca7aa9855ee14684d521836ae88ad1986b8ca944348e976760d2bd1247ed3ca7628@[::]:30303INFO [06-03|11:03:16] IPC endpoint opened url=/Users/mjvr/Library/Ethereum/geth.ipc在此之后,你应该看到定期出现新行,Geth说“导入新状态”或“导入新区块头”或“导入新收据”。

状态,块头和交易是 Ethereum’s tree tries的一部分:必须下载它们才能使你的节点与以太坊区块链同步。

这个过程可能需要很长时间,因此你可以选择运行这样的轻型节点。

geth --lightGeth现在需要做的只是拉动最新的块头并依赖其他完整节点来通过使用merkle证明来验证交易。

访问Geth控制台现在你已经创建了一个节点,你可以通过在终端中打开一个新选项卡并运行以下命令来访问它:geth attach这将把Geth控制台(一个用于与区块链通信的Javascript***连接到你的运行节点。

这可以在完全客户端模式和轻模式下完成。

打开控制台后,键入以下内容:web3.eth.blockNumber你应该输出一个数字(例如5631487),表示以太坊网络的当前块号。

创建一个新帐户要使用区块链,你需要拥有一个帐户。

本文到此结束,希望能给网友您带来不错的体验。

图集详情底部广告位