为广大币圈朋友提供币圈基础入门专业知识!
当前位置首页 > 区块链知识> 正文

以太坊节点配置,以太坊节点服务器配置

发布时间:2024-03-04-08:27:00 来源:网络 区块链知识 以太   节点   window

以太坊节点配置,以太坊节点服务器配置

以太坊节点配置指南

以太坊是目前市值排名第二的加密货币,其底层技术基于区块链技术,通过节点来维护网络的安全性和稳定性。在币圈中,拥有自己的以太坊节点可以带来更多的收益和控制权。本文将介绍如何配置以太坊节点服务器,让你成为高手中的高手。

以太坊节点服务器配置关键词

在配置以太坊节点服务器之前,我们需要了解一些关键词,以便更好地理解配置过程。

1. 以太坊节点

以太坊节点是指运行以太坊客户端软件的计算机,它们通过互联网连接到以太坊网络,并共同维护网络的安全性和稳定性。

2. 以太坊客户端软件

以太坊客户端软件是运行在节点上的程序,它们可以与其他节点通信,共同维护区块链网络。常见的以太坊客户端软件有Geth、Parity和OpenEthereum。

3. 全节点

全节点是指拥有完整的区块链数据,并且能够验证和广播交易的节点。拥有全节点可以提供更高的安全性和可靠性,但需要更多的存储空间和计算资源。

4. 轻节点

轻节点是指只保存区块头信息,并从全节点获取交易数据的节点。轻节点可以节省存储空间和计算资源,但安全性和可靠性相对较低。

5. 以太坊网络

以太坊网络是指由全节点和轻节点组成的去中心化网络,它们共同维护着以太坊区块链的安全性和稳定性。

配置以太坊节点服务器的步骤

现在,让我们来看看如何配置以太坊节点服务器。

1. 选择合适的服务器

首先,你需要选择一台合适的服务器来运行以太坊节点。建议选择具有高性能CPU和大内存的服务器,以确保节点的稳定运行。

2. 下载并安装以太坊客户端软件

根据你的需求,选择并下载合适的以太坊客户端软件。在安装过程中,你可以选择安装全节点或轻节点。

3. 配置节点

打开以太坊客户端软件,按照提示进行配置。你需要设置节点的IP地址、端口号和数据存储路径等信息。如果你选择安装全节点,可能需要等待一段时间来同步区块链数据。

4. 开启RPC服务

RPC(远程过程调用)服务允许其他节点和应用程序连接到你的节点,并获取数据。你可以通过配置文件或命令行的方式来开启RPC服务。

5. 配置防火墙

为了保证节点的安全性,你需要配置防火墙来限制外部访问。确保只允许来自其他节点和应用程序的访问。

6. 启动节点

一切准备就绪后,你可以启动节点并等待其连接到以太坊网络。你可以通过命令行或图形界面来启动节点。

总结

通过以上步骤,你已经成功配置了以太坊节点服务器。拥有自己的节点可以带来更多的收益和控制权,同时也为以太坊网络做出了贡献。希望本文能够帮助你成为币圈中的高手,享受节点带来的种种好处。


请查看相关英文文档

Ⅰ什么是以太坊丨以太坊开发入门指南

什么是以太坊丨以太坊开发入门指南
很多同学已经跃跃欲试想要投资以太坊了。区块链 如果你是开发团队的一员,却感觉无从下手,本文将以以太坊平台为基础,通俗地介绍以太坊开发中涉及到的晦涩概念,让你可以轻松上手。
什么是以太坊
以太坊是一个基于区块链技术构建的去中心化应用平台。它允许任何人在平台内构建和使用在区块链技术上运行的去中心化应用程序。
不明白这句话的同学可以暂时理解为以太坊就是区块链中的Android。它是一个开发平台,允许我们像Android Framework一样编写基于区块链技术的应用程序。
在以太坊之前,编写区块链appl当时的情况是这样的:复制一份比特币代码,然后更改底层代码,如加密算法、共识机制、网络协议等(很多山寨币都是这样,改了就会有新的币出来)它)。
以太坊平台封装了区块链底层技术,允许区块链应用开发者直接基于以太坊平台进行开发。开发人员只需专注于应用程序本身的开发,从而大大降低了难度。
目前,围绕以太坊已经形成了比较完善的开发生态系统:在社区的支持下,有很多开发框架和工具可供选择。
智能合约
什么是智能合约
以太坊上的程序称为智能合约,它是代码和数据(状态)的集合。
智能合约可以理解为用代码编写的可以自动执行的合约(特殊交易)d 在区块链上(由事件驱动)。
在Bitcoin Script中,我们提到过比特币交易是可以编程的,但是Bitcoin Script有很多限制,可以编写的程序也有限,而以太坊则更完整(用计算机科学术语来说,称之为“图灵机”)完整”),使我们能够编写几乎可以做任何事情的程序(智能合约),就像任何高级语言一样。
智能合约非常适合需要高信任、安全、持久的应用场景,例如:数字货币、数字资产、投票、保险、金融应用、预测市场、产权管理、物联网、点对点等。点对点交易等等等。
目前除了数字货币之外,现实生活中的应用并不多(就像移动平台刚刚开始出来一样)。相信1到3年内,各种杀手将会慢慢出现。
编程语言:Solidity
T智能合约的默认编程语言是Solidity,文件扩展名以.sol结尾。
Solidity是一种类似于JavaScript的语言,用它来开发合约并将其编译成以太坊虚拟机字节码。
还有一种类似Python的智能合约开发语言:Serpent,但建议大家还是使用Solidity。
Browser-Solidity 是一个适用于浏览器的 Solidity IDE。您可以点击进去看看。以后我们会介绍更多关于Solidity语言的文章。
运行环境:EVM
EVM(Ethereum Virtual Machine)以太坊虚拟机是以太坊中智能合约的运行环境。
Solidity对于EVM就像对于JVM一样,所以大家会很容易理解。
以太坊虚拟机是一个隔离的环境,EVM内部运行的代码无法与外界有任何联系。
EVM运行在以太坊节点上。当我们部署时将合约上传到以太坊网络,合约可以在以太坊网络上运行。
合约编译
以太坊虚拟机以合约的字节码形式运行。我们需要在部署之前编译合约。您可以选择Browser-Solidity Web IDE或solc编译器。
合约部署
在以太坊上开发应用时,经常会用到以太坊客户端(钱包)。平时我们在开发的时候,一般不会接触到客户端或者钱包的概念。它是什么?
以太坊客户端(钱包)
以太坊客户端,其实我们可以把它理解为一个开发者工具,提供账户管理、挖矿、转账、部署和执行智能合约等功能。
EVM由以太坊客户端提供。
Geth是开发以太坊时使用的典型客户端,基于Go语言开发。 Geth提供了一个交互式命令控制台,其中包含以太坊的各种功能(API)通过命令控制台。后面我们会在一篇文章中介绍Geth的使用,不过这里大家有个概念。
Geth控制台与Chrome浏览器开发者工具中的控制台类似,但它运行在终端中。
与 Geth 相比,Mist 是一款图形化操作界面的以太坊客户端。
如何部署
智能合约的部署是指将合约字节码发布到区块链上,并使用特定的地址来标识合约。这个地址称为合约账户。
以太坊中有两种类型的账户:
· 外部账户
此类账户由私钥控制(由人控制),不与任何代码关联。
·合约账户
此类账户由其合约代码控制,并具有与其关联的代码。
使用UTXO与比特币的设计不同,以太坊使用更简单的账户概念。
对于 EVM,两种类型的帐户都是相同的。
外部账户和合约账户的区别和联系是这样的:一个外部账户可以通过用自己的私钥创建并签署交易来向另一个外部账户或合约账户发送消息。
在两个外部账户之间发送消息就是价值转移的过程。但是从外部账户到合约账户的消息会激活合约账户的代码,使其能够执行各种操作(例如转移代币、写入内部存储、挖掘新代币、执行一些操作、创建新合约等) 。 等待)。
只有当外部账户发出指令时,合约账户才会执行相应的操作。
合约部署是将编译好的合约字节码以通过外部账户发送交易的形式部署到以太坊区块链上(实际矿工出块后才算部署成功)。
运行
合约部署后,当需要调用此智能合约的方法时,只需向此合约账户发送消息(交易)即可。消息触发后,EVM 中将执行智能合约的代码。 。
Gas
与云计算类似,占用区块链的资源(无论是简单的转账交易,还是合约的部署执行)也需要相应的费用(天下没有免费的午餐) , 正确的? )。
以太坊上使用Gas机制进行计费。 Gas 也可以被视为工作负载单位。智能合约越复杂(计算步骤的数量和类型、占用的内存等),完成操作所需的时间就越多。气体。
任何特定合约运行合约所需的 Gas 量都是固定的,并由合约的复杂性决定。
Gas价格由运行合约的人在以下情况下规定:提交运行合约的请求,以确定他愿意为此交易支付的费用:Gas 价格(以以太坊计价)* Gas​​ 数量。
Gas的目的是在支付执行费用的同时限制执行交易所需的工作量。当EVM执行一笔交易时,Gas会按照特定规则逐渐消耗。无论在哪里执行,一旦 Gas 耗尽,就会触发异常。当前调用帧中所做的所有状态修改都将回滚。如果执行结束时还有剩余的 Gas,这些 Gas 将被退回到发送账户。
如果没有这个限制,有人会写一个无法停止的合约(比如无限循环)来阻塞网络。
所以实际上(将前面的内容放在一起),我们需要一个具有以太坊余额的外部帐户来发起交易(普通交易或部署并运行合约)。矿机运行时收费相应的工程量费。
以太坊网络
有些着急的同学可能想问,没有以太坊我们如何开发智能合约呢?您可以选择以下方法:
选择选择以太坊官网测试网络Testnet
在测试网络中,我们可以轻松获得免费的以太币。缺点是节点初始化时间较长。
使用私有链
创建自己的以太坊私有测试网络,通常称为私有链,我们可以用它作为测试环境来开发、调试和测试智能合约。
有了上面提到的 Geth,就可以轻松创建自己的测试网络。您可以开采任意数量的以太坊,而无需同步官方网络的整个区块链数据。
使用开发者网络(模式)
与私链相比,开发者网络(模式)下会自动分配一个余额较大的开发者账户供我们使用。
使用模拟环境
创建测试网络的另一种方法是使用 testrpc。 testrpc 是使用内存在本地模拟的以太坊环境。开发、调试更加方便、快捷。而testrpc可以帮我们在启动时用资金创建10个测试账户。
开发合约时,可以在testrpc中进行测试,然后部署到Geth节点上。
更新:testrpc现已集成到Truffle开发框架中,并命名为Ganache CLI。
Dapp:去中心化应用
以太坊社区将基于智能合约的应用称为去中心化应用(DecentralizedApp)。如果我们把区块链理解为一个不可篡改的数据库,将智能合约理解为与数据库打交道的程序,那么理解Dapp就很容易了。一个Dapp不仅有智能合约,还需要友好的用户界面等。
Truffle
Truffle是一个Dapp开发框架。它可以帮助我们处理了很多琐碎的事情,让我们快速启动了编写代码-编译-部署-测试-打包DApp的流程。
总结
现在我们来总结一下。以太坊是一个平台,可以让我们轻松地使用区块链技术来开发去中心化应用程序。在这个应用中,使用Solidity来编写和区块链交互的智能合约,合约编写完成后,我们需要使用以太坊客户端来部署并运行带有余额的账户的合约(使用Truffle框架可以更好地帮助我们做到这些东西)。为了开发方便,我们可以使用Geth或者testrpc搭建测试网络。
注:为了让大家更容易理解,本文对一些概念进行了类比。其中一些并不严格准确。不过,我也认为对于初学者来说,没有必要详细、准确地掌握每一个概念。学习是一个循序渐进的过程,很多时候我们会发现,过了一段时间,我们对同一件事会有不同的理解。

二进入以太坊网络

目录


术语“以太坊节点”是指某个节点与以太坊网络交互的程序。任何设备都可以充当以太坊节点,从简单的移动钱包应用程序到存储整个区块链副本的计算机。

所有节点都以某种方式充当通信点,但以太坊网络中有多种类型的节点。


与比特币不同,以太坊找不到任何程序作为参考实现。在比特币生态系统中,Bitcoin Core是主要节点软件,以太坊黄皮书提出了一系列独立(但兼容)的方案。目前最流行的是 Geth 和 Parity。


要以允许独立验证区块链数据的方式连接到以太坊网络,您应该使用 pre 运行完整节点强烈提到的软件。

软件将从其他节点下载区块并验证其包含的交易的正确性。该软件还将运行所有被调用的智能合约,确保接收到的信息与其他节点相同。如果一切按计划进行,我们可以假设所有节点设备都存储相同的区块链副本。

全节点对于以太坊的运行至关重要。如果没有遍布全球的大量节点,网络将失去其抗审查和去中心化的性质。


通过运行全节点,可以直接为网络的健康安全发展做出贡献。但全节点通常需要使用独立的机器进行运维。对于无法(或根本不愿意)运行全节点的用户来说,轻节点是更好的选择。

顾名思义,轻节点是轻量级设备,可以显着减少资源消耗,空间使用情况。手机或笔记本电脑等便携式设备可以作为轻节点。然而,降低开销是有代价的:轻节点无法完全自给自足。它们无法与整个区块链同步,需要全节点提供相关信息。

轻节点受到商家、服务商和用户的青睐。它们广泛用于不需要全节点且运行成本过高的支付。

挖矿节点可以是全节点客户端,也可以是轻节点客户端。 “挖矿节点”一词的使用方式与比特币生态系统中不同,但仍用于识别参与者。

要参与以太坊挖矿,必须使用一些额外的硬件。最常见的方法是构建一个矿工。用户矿机连接多个GPU(图形处理单元)高速计算哈希数据。

矿工可以选择两种挖矿方式:单独挖矿或加入矿池。单独挖矿意味着矿工单独创建区块。如果成功,挖矿奖励将专属于您。如果你加入一个矿池,许多矿工的哈希能力就会被结合起来。区块生成速度提高,但挖矿奖励将由众多矿工共享。


区块链最重要的特征之一是“开放访问”。这表明任何人都可以运行以太坊节点并通过验证交易和区块来增强网络。

与比特币类似,许多企业提供即插即用的以太坊节点。如果您只想启动并运行单个节点,那么该设备无疑是最佳选择,但缺点是您必须为方便而支付额外费用。

正如前面提到的,以太坊中有许多不同类型的节点软件实现,例如 Geth 和 Parity。要运行个人节点,您必须了解所选实施的安装过程。

除非运行特殊节点称为归档节点,一台消费级笔记本电脑足以支持以太坊全节点的正常运行。但是,最好不要使用日常工作设备,因为节点会严重减慢速度。

运行个人节点时,建议设备始终在线。如果一个节点离线了,当它再次连接到互联网时,可能需要花费很多时间来同步。因此,最好选择建造成本低且易于维护的设备。您甚至可以通过 Raspberry Pi 运行轻节点。


随着网络即将过渡到权益证明机制,以太坊挖矿不再是最安全的长期投资方式。转型成功后,以太坊矿工只能将自己的挖矿设备转移到其他网络或者直接出售。

鉴于过渡尚未完成,参与以太坊挖矿仍需要使用特殊硬件(例如 GPU 或 ASI)C)。想要获得丰厚的利润,就必须定制自己的矿机,寻找电价低廉的矿场。此外,您还需要创建一个以太坊钱包并配置相应的挖矿软件。这一切都消耗大量的时间和金钱。在参与挖矿之前,请仔细考虑自己是否能够应对各种挑战。 (国内严禁挖矿,请勿自行尝试)


ProgPow代表Programmed Proof of Work。这是以太坊挖矿算法 Ethash 的扩展,旨在使 GPU 比 ASIC 更具竞争力。

在比特币和以太坊社区中,ASIC 抵抗多年来一直是一个有争议的话题。在比特币网络中,ASIC已经成为挖矿的主力。

在以太坊市场中,ASIC并不是主流,相当一部分矿机仍然使用GPU。然而,随着越来越多的公司引入以太坊 ASIC 挖矿,这种情况很快就会改变钻机推向市场。然而,ASIC 存在哪些问题呢?

一方面,ASIC 显着削弱了网络的去中心化性。如果GPU矿工无法盈利而不得不停止挖矿,算力最终将集中在少数矿工手中。此外,ASIC芯片的开发成本相当昂贵,只有极少数公司具备开发能力和资源。这种现状可能会导致以太坊挖矿产业集中在少数公司手中,形成一定程度的行业垄断。

ProgPow的整合自2018年以来一直存在争议,一些人认为这有利于以太坊生态的健康发展。其他人则反对,认为这可能会导致硬分叉。随着权益证明的到来,ProgPoW 是否可以应用于网络还有待观察。


以太坊和比特币是一样的,两者都是开源平台。任何人都可以参与协议开发或基于协议构建应用程序。事实上,以太坊是目前区块链领域最大的开发者社区。

Andreas Antonopoulos 和 Gavin Wood 的《掌握以太坊》,以及 Ethereum.org 推出的开发者资源,是新开发者的理想起点。


智能合约的概念最早于20世纪90年代提出。它在区块链中的应用带来了一系列新的挑战。 Solidity由Gavin Wood于2014年提出,现已成为开发以太坊智能合约的主要编程语言,其语法与Java、JavaScript和C++类似。

本质上,使用 Solidity 语言,开发人员可以编写在分解时可以由以太坊虚拟机(EVM)解析的指令。您可以通过 Solidity GitHub 了解有关其工作原理的更多信息。

事实上,Solidity语言并不是唯一的选择或以太坊开发者。 Vyper也是一种流行的开发语言,其语法更接近Python。

三如何使用okminer在win系统下挖矿

下载安装GPU360Miner即可。
theOKminerAPP是一款专门用于挖矿和理财的移动应用程序。提供更安全、更有效的理财和挖矿平台应用,让每个人都能更有效地投资和参与。
移动在线挖矿机制,操作简单,这样每天都能看到的收益回报让投资者放心投资,同时带来更多的市场信息内容服务。从比特币、以太坊、EOS到IPFS、filcoin,放眼整个区块链行业,我们可以发现挖矿确实是一种非常好的投资方式,也是熊市和牛市中最稳定的投资方式。所以众所周知,这些B圈大佬,或者说矿圈大佬,都是矿业评估的信徒。中国区块链富豪前10名中,有7人从事挖矿行业。但普通人想要挖矿面临着高门槛、高风险、高成本。 OKminer挖矿平台为很多想要挖矿的普通人提供了一条路径。

四以太坊源码分析--p2p节点发现

节点发现功能主要涉及Server Table udp数据结构。它们有自己的事件响应循环,并且节点发现功能很方便。它们是相互协作完成的。其中,每个以太坊客户端启动后都会在本地运行一个Server,将网络拓扑中的相邻节点视为Node,而Table是Node的容器,udp负责维护底层连接。下面重点描述它们的重要领域以及事件循环处理的关键部分。

PrivateKey - 本节点的私钥,用于握手协商与其他节点建立时
Protocols - 所有支持的上层协议
StaticNodes - 默认静态Peer,节点启动时会首先向它们发起连接并建立邻居关系
newTransport - 下层传输层实现,定义了握手过程中的数据加密和解密方法。默认的传输层实现是使用 newRLPX() 创建的 rlpx,这不是本文的目的。要点
ntab - 典型实现是Table,所有peer以Node的形式存储在Table中
ourHandshake - 与其他节点建立连接时的握手信息,包括本地的版本号节点及支持的上层协议
addpeer - 连接握手完成后,连接过程通过该通道通知Server

Server 的监听循环启动底层监听socket。当一个合作收到连接请求后,Accept 后调用 setupConn() 开始连接建立过程。

服务器主要事件处理及功能实现循环

Node唯一代表一个Node

IP - IP地址
UDP/TCP - UDP/TCP端口号用于连接
ID - 唯一标识以太坊网络中的一个节点,本质上是一个椭圆曲线算法的Key(PublicKey),对应Server的PrivateKey。节点的IP地址不一定是固定的,但ID是唯一的。
sha - 用于节点之间的距离计算

表主要用于管理本节点与其他节点之间连接的建立、更新和删除

bucket - 所有peer根据该节点的距离被放入不同的桶中。具体可以参考后续节点维护
refreshReq - 更新Table请求通道

Table的主事件循环,主要负责控制ng 刷新和重新验证过程。
refresh.C - 定期启动 Peer 刷新过程的计时器(30 秒)
refreshReq - 接收来自其他线程的通知,以刷新传递到 Table 的 Peer 连接。收到通知后,即开始更新。详情请参阅下文。更新邻居关系
revalidate.C - 定期重新检查连接节点有效性的定时器,具体参见后续的活体检测

udp负责节点间通信的底层消息控制,以及是表运行的Kademlia协议的底层组件

conn - 底层监听端口的连接
addpending - udp用来接收pending的通道。使用场景是:当我们向另一个节点发送数据包时,我们可能期望收到它的回复。 Pending 用于记录此类尚未到达的回复。例如,当我们发送 ping 数据包时,我们总是期望其他 p附庸风雅地回复一个乒乓数据包。此时可以构造一个pending结构体,其中包含期望接收的pong包的信息以及对应的回调函数,并将pending投递到UDP的通道中。 udp收到匹配的pong后,执行预设的回调。
gotreply - udp 是一个用于接收其他节点回复的通道。结合上面的addpending,收到回复后,遍历现有的pending列表,看是否有oneMatch进行pending。
Table - 与Server中的ntab同一张Table

udp的处理循环,负责控制消息的向上提交和发送接收控制

底层udp层接受数据包循环,负责接收来自其他节点的数据包

以太坊使用Kademlia分布式路由和存储协议来维护网络拓扑。要理解该协议,建议首先阅读《易于理解的分布》。更多权威信息可以在wiki上找到。一般来说,这个协议:

所有的bucket都是通过源码中的Table结构来保存的。桶结构如下

节点可以转换为条目和替换。如果某个条目节点的验证失败,则它将被替换数组中最初的节点替换。

有效性检测是使用 ping 消息来检测活动。 Table.loop() 启动一个定时器(0~10s),定期随机选择一个桶,并向其条目末尾的节点发送 ping 消息。如果对方回复pong,则检测成功。

Table.loop()会定期(定时器超时)或不定期(接收refreshReq)更新邻居关系(发现新邻居),这两种情况都会调用doRefresh()方法,该方法会查找距离最近的节点本身和网络上的三个随机节点。

表的lookup()方法用于实现目标节点的节点搜索。它的实现是Kademlia协议,通过节点之间的中继逐步接近目标。

当一个节点启动时,它会首先向配置的静态节点发起连接。发起连接的过程称为拨号。在源码中通过创建 dialTask​​ 来跟踪这个过程

dialTask​​ 代表一次主动向其他节点发起连接的任务

当 Server 启动时,newDialState() 会被调用根据预先配置的StaticNodes初始化一批dialTask​​s,这些任务将在Server.run()方法中启动。

Dial进程需要知道目标节点(dest)的IP地址,如果不知道IP地址,则必须先使用recolve()解析目标IP地址。如何解决呢?即首先使用Kademlia协议找到网络中的目标节点。

获取目标IP后t节点,下一步就是建立连接。这是通过dialTask​​.dial()建立连接

连接建立的握手过程分为两个阶段。在SetupConn()中实现
第一阶段是ECDH密钥建立:

第二阶段是协议握手,交换支持的上层协议

如果两次握手都通过后,dialTask​​会向Server的addpeer通道发送peer信息

四以太坊多节点私链部署

假设两台电脑A和B
需求:< br /> 1. 两台电脑必须在同一个网络,并且可以ping通
2. 两个节点使用相同的创世块文件
3. 禁用ipc;同时使用参数--nodiscover
4、networkid必须相同,但端口号可以不同

1.4 搭建私链
1.4.1创建目录和genesis.json文件
创建pr的根目录ivate 链。 /testnet
创建数据存储目录。/testnet/data0
创建创世块配置文件。/testnet/genesis.json

1.4.2 初始化操作
cd ./eth_test
geth --datadir data0 init genesis.json

1.4.3 启动私有节点

1.4.4 创建账户
个人。 newAccount()
1.4.5 查看账号
eth.accounts
1.4.6 查看账户余额
eth.getBalance(eth.accounts[0])
1.4 .7 开始和停止挖矿
开始挖矿:
miner.start(1)
start参数表示挖矿方式使用的线程数。第一次开始挖矿时,首先会生成挖矿所需的DAG文件。这个过程有点慢。当进度达到100%时,挖矿就会开始。此时,屏幕会刷新挖矿信息。
要停止挖矿,请在控制台输入:
miner.stop()
如果挖到一个区块,您将获得 5 个以太币奖励。挖矿奖励将打入矿工账户。这个账户叫做coinbase。默认情况下,coinbase是本地账户中的第一个账户。您可以通过miner.setEtherbase()将其他账户设置为coinbase。

1.4.8 转账
目前账户0已挖出3块奖励,账户1余额仍为0:

我们要从账户0到账户1正在转账,所以账户0必须先解锁才能发起交易:

发送交易,账户0 -> 账户1:

密码需要123456
< br />如果此时没有挖矿,可以使用txpool.status命令查看本地交易池中有待确认的交易,可以使用eth。 getBlock("pending", true).transactions 查看当前待确认的交易。

使用miner.start()命令开始挖矿:
miner.start(1);admin.sleepBlocks(1);miner.stop();

新区块开采完毕后,挖矿结束。检查账户 1 的余额,您已收到账户 0 的以太币:
web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')

使用同样的genesis.json初始化操作
cd ./eth_test
geth --datadir data1 init genesis.json

启动私有节点1,修改rpcport和端口

可以通过admin.addPeer()方法连接其他节点,且两个节点必须指定相同的chainID。

假设有两个节点:节点一和节点二,chainID均为1024。可以通过以下步骤从节点二连接到节点一。

首先需要知道节点一的enode信息。在节点一的 JavaScript 控制台中执行以下命令,查看 enode 信息:

admin.nodeInfo.enode
" enode://@[::]:30303 "

然后在 JavaScript cons 中执行 admin.addPeer()节点二连接节点一的ole:

addPeer()的参数是节点一的enode信息。请注意,enode 中的 [::] 应替换为节点一的 IP 地址。连接成功后,节点一开始同步节点二的区块。同步完成后,任意节点开始挖矿,对方节点会自动同步区块,向任意节点发送交易,对方节点也会收到。交易。

通过admin.peers可以查看与其连接的其他节点信息,通过net.peerCount可以查看与其连接的节点数量。

除了上述方法外,还可以在启动节点时指定--bootnodes选项来连接其他节点。 bootnode是一个轻量级的引导节点,方便联盟链的构建。下一节会讲通过bootnode自动寻找节点

参考:https://cloud.tencent.com/developer/article/1332424

博客主人唯心底涂
男,单身,无聊上班族,闲着没事喜欢研究股票,无时无刻分享股票入门基础知识,资深技术宅。
  • 54547 文章总数
  • 3640594访问次数
  • 3167建站天数