搭建主网以太坊全节点钱包

资讯 2024-06-30 阅读:33 评论:0
最近公司需要开发以一个基于以太坊的 DApp, 使用 ETH 作为中转介质,需要开发一个简易版的以太坊的钱包组件。考虑到 API 的并发,为了保证 DApp 的稳定运行, 不能使用 Infura 的免费接口,所以还是决定自己搭建钱包节点。本...
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

最近公司需要开发以一个基于以太坊的 DApp, 使用 ETH 作为中转介质,需要开发一个简易版的以太坊的钱包组件。考虑到 API 的并发,为了保证 DApp 的稳定运行, 不能使用 Infura 的免费接口,所以还是决定自己搭建钱包节点。本文就是记录了整个节点搭建的过程,供有需要的同学参考。

Recently, companies need to develop an Ether based Dapp, using ETH as a medium for transit, and a simple version of Ether's wallet component. Considering API co-publishing, it is not possible to use Infoura's free interface to ensure the steady operation of Dapp, so it is decided to set up the wallet node itself. This is a document of the whole node set-up process for those students who need it.

首先一个良好的建议是,不管你的机器配置有多好,请不要把钱包和应用部署在同一台云主机上。 否则可能会发生一些你意想不到的后果。

# 土豪配置

# 中产阶级配置

# 贫民配置

我们公司是在阿里云买的 ECS 云主机,配置使用的是"中产阶级配置",系统是 Ubuntu 16.04 LTS.

Our company bought the ECS cloud mainframe in Alien, configured to use &quat; middle class configuration &quat; system Ubuntu 16.04 LTS.

目前搭建以太坊钱包节点的主流的有两种,一种是使用官方的 geth 工具,一种是使用 parity 工具搭建。我们这次技术选型选的是 geth, 你要问我为什么不用 parity,是因为我觉得官方的更靠谱一些,而且我的 API 用的是 web3, 最重要的原因是 parity 我不熟,呵呵...

There are two types of mainstream that are currently being built in the Taiyo wallet nodes, one using the official geth tool, and the other using the parity tool. Our technical selection is getting. You have to ask me why I don't use the parity because I think the official is more reliable, and my API is using the web3, and the most important reason is that I'm not familiar, huh...

# 1. 配置 go 语言运行环境

根据自己操作系统类型,选择对应的版本,我安装的是 liunx 64 位系统版本的

Select the corresponding version, depending on the type of operating system, and I install the libx 64-bit version.

# 2. 安装 geth

这里我们采用编译以太坊官方的源码来安装, 我安装的时候最新版本是 v1.8.17, 大家具体根据自己情况下载对应的版本,下载地址:https://github.com/ethereum/go-ethereum/tags (opens new window)

The latest version of my installation is v1.8.17, downloading the corresponding version according to their own circumstances: , downloading addresses: , >aria-hidden="trade"x"0px" yviewBox=000100"news<1hetpan<1, > > >

编译完成之后在 build/bin 目录下会生成很多可执行文件, 就是其中一个.

When compiled, a lot of executables will be generated in the build/bin directory, which is one of them.

# 3. 配置环境变量

编辑 文件,添加 geth 和 go 语言的环境变量

Edit files, add environmental variables in geth and go languages

重启服务器或者执行 source /etc/environment 命令使环境配置生效

Restart the server or execute the source/ etc/ environment command to give effect to the environment configuration

然后在终端输入 geth version 命令就会返回如下输出:

Then enter the geth command at the terminal and return the following output:

打印出 geth 的版本,go 语言版本,以及 GOROOT 这些环境变量,说明 geth 已经安装成功了.

Prints the version of the geth, the go language version, and the GoROOT environment variables that indicate that the geth has been installed.

这里我直接给出一个启动脚本,如果要了解 geth 命令的详细用法的话,这里推荐一篇比较好的博客 以太坊客户端Geth命令用法-参数详解 (opens new window)

Here I give a kick-start script which, if I want to know the detailed usage of the geth command, I recommend a better blog in order to understand the detailed usage of the geth command

我现在对这些参数进行简单解释:

I will now briefly explain these parameters:

参数名称 | 参数说明 --syncmode | 同步模式,有三种"fast" ,"full","light". --networkid | 网络ID(整型, 1=Main, 2=Morden (弃用), 3=Ropsten, 4=Rinkeby) 这里我们使用默认值 1 表示同步主网的数据 --datadir | 钱包以及区块数据等存储目录,这个建议单独使用数据盘,不要指定系统盘的文件夹 --identity | 节点标识符 --rpc | 开启 RPC 服务 --rpcapi | 开放那些 API 给 JSONRPC 调用,默认 personal 工具是不开放的 --rpccorsdomain | RPC 调用跨域限制,号标识不限制 --rpcport | JSONRPC 服务监控的端口 --port | 同步服务端口 --rpcaddr | 可以调用 RPC 服务的IP地址,我这里只允许本地调用,不开放给其他用户,如果你想做成 Infura 那样作为公开的 API 的话,可以设置成 0.0.0.0

Parameter name Parameter description -- sync mode of synchronisation -- & & quot;, & & quot; & Full & & & & & Quot; & & & square;. --networkid network ID (integration, 1 = Main, 2 = Morden (discarded), 3 = Ropsten, 4 = Rinkeby) Here we use default value 1 to denote data from the synchronization main network -- dataddir wallet and block data storage catalogues, which suggests separate data disks, not to specify folders for the system disk --identity node identifier -- rpc turn on RPC services -- rpcapcappi Morden (disclosed) to open those API to JSONRPPCC, if you want to use an unopen user -- rpsdominRPC IP0 - you can use a non-syncryplvintintrint

表示在后台运行一个脚本,并将输出导入到 nohup.out 文档中

represents running a script in the backstage and importing the output into a nohup.out document

这里我再对同步模式做一个更加详细的解释

Here's a more detailed explanation of synchronization.

【 fast 】?启动快速区块同步模式,在同步到最新区块后,转化为正常区块同步模式. 这个是推荐选项,此方法可能会对历史数据有部分丢失, 但是不影响今后的使用
【full】从开始到结束,获取区块的header,获取区块的body,从创始块开始校验每一个元素,需要下载所有区块数据信息。 速度最慢,但是能获取到所有的历史数据, 这个是默认的选项。
【light】仅获取当前状态。验证元素需要向full节点发起相应的请求。

[fast]? Activate fast block synchronization mode and convert to normal block sync mode after synchronizing to the latest block. This is the recommended option, which may be partially lost to historical data, but does not affect the future use of
[full] from beginning to end, to get the header of the block, to get the body of the block, to check every element from the beginning of the original block, and to download all block data information. The slowest speed, but to obtain all historical data, is the default option.
[light] only obtains the current state.

如果想要关闭在后台运行的节点,可以使用以下脚本

If you want to close the node running in the backstage, use the following script

在节点启动之后,我们可以使用 命令去进入节点 javascript 终端

After the node starts, we can use the command to enter the node javascript terminal

这里的 data 为上面启动 geth 时指定的 datadir 目录。

Here's data for the datdir directory specified at the start of the geth above.

进入终端以后我们就可以输入命令去查看同步的状态,网络,区块信息等,比如如果我们想查看当前同步状态的话可以使用 命令:

When you enter the terminal, you can enter the command to view the synchronous state, the network, block information, etc., for example, if you want to see the current synchronous state, you can use the command:

这里有个坑就是,你会发现你每次执行 命令的时候 currentBlock 和 highestBlock 都只相差几百,以为马上就要同步完了,只有几百个区块了。 其实你还只是同步了一小部分。这个是正常现象,因为我们使用了 --fast 选项,所以开始只同步了区块头,它还要慢慢的去同步区块 Body.

There's a pit where you'll find that every time you execute an order, it's only a few hundred different, thinking that you're about to end up synchronizing, with only a few hundred blocks. You're still synchronizing. It's normal, because we use the --fast option, so we start synchronizing blocks, and it's slowly going to sync blocks.

另外在同步的过程中我们通过 eth.blockNumber 去查看当前区块号的话会显示为 0

Also, during the synchronisation process, if we go through Eth.blockNummer to see the current block number, it's shown as zero.

可以通过 net.peerCount 来看自己的这个节点连了多少个其它节点进行数据同步。

You can see how many other nodes your data are synchronised by this node on the net.peerCount.

如果是返回的是 0 的话,那么估计可能还没有开始同步,没有找到节点,如果长时间是 0 的话,那么就查一下你的网络是否通畅了。

If the return is 0, then probably it has not started synchronizing, nodes have not been found, and if it is 0 for a long time, check if your network is working.

如果你通过 返回的是 false 的,或者 返回的是大于 0 的整数的话,如下:

If you return by false, or return by an integer number greater than 0, as follows:

那么 Congratulations, 同步已经完成,你就可以开始调用钱包 API 转账了。

So Congratulations, synchronisation is complete and you can start calling the API transfer.

顺便说一下,我用的阿里云的香港主机,中产阶级配置,大概不到两天就同步完成了,区块的数据总共 140 GB, 速度还是可以的。

By the way, the Hong Kong mainframe, the middle class, that I used, was done in less than two days, and the data for the block was 140 GB, and the speed was still good.

至此,一个全节点的以太坊钱包就部署完成,Enjoy Coding.

So, a full node of Ether's wallet is deployed, Enjoy Coding.

美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址
文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
平台列表
美化布局示例

欧易(OKX)

  全球官网 大陆官网

币安(Binance)

  官网

火币(HTX)

  官网

Gate.io

  官网

Bitget

  官网

deepcoin

  官网
热门文章
  • 2000年美国GDP占世界的304%,中国GDP仅占35%,现在呢?

    2000年美国GDP占世界的304%,中国GDP仅占35%,现在呢?
    GDP作为全球公认的实力基准,就像是一个大国实力的代言人,它是布雷顿森林体系下全球团结的声音。它不仅仅是数字的累积,更是大国综合实力的人格化,默默诉说着每个国家的辉煌与荣耀。虽然GDP不是衡量一个国家综合实力的唯一标准,但无疑是最关键的指标之一。作为一面镜子,它反映了国家的经济实力和发展水平,是国家综合实力的重要体现,不容忽视。2000年,中国GDP迈过/克洛克-0/万亿美元的重要门槛,达到/克洛克-0/。2/克洛克-0/万亿美元(折合人民币7。7万亿元)。然而,在全球经济的...
  • 0.00003374个比特币等于多少人民币/美金

    0.00003374个比特币等于多少人民币/美金
    0.00003374比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00003374比特币等于2.2826 1222美元/16.5261124728人民币。比特币(BTC)美元(USDT)人民币(CNY)0.00003374克洛克-0/22216.5261124728比特币对人民币的最新汇率为:489807.72 CNY(1比特币=489807.72人民币)(1美元=7.24人民币)(0.00003374USDT=0.0002442776 CNY)。汇率更新于2024...
  • 0.00006694个比特币等于多少人民币/美金

    0.00006694个比特币等于多少人民币/美金
    0.00006694比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00006694比特币等于4.53424784美元/32.5436 16人民币。比特币(BTC)美元(USDT)人民币(CNY)0.000066944.53424784【比特币密码】32.82795436 16比特币对人民币的最新汇率为:490408.64 CNY(1比特币=490408.64人民币)(1美元=7.24人民币)(0.00006694USDT=0.0004846456 CNY)汇率更新时...
  • 1929经济大萧条或许即将重演?

    1929经济大萧条或许即将重演?
    人类似乎陷入了一个历史悖论,即我们总是重复同样的错误,无法真正从过去的错误中吸取教训。近年来,我们对世界各地接连不断的挑战和危机深感不安。20 19年突如其来的疫情,乌克兰的战火硝烟,欧洲的天然气供应危机以及全球少数国家的饥荒,所有这些问题都像洪水一样,一个接一个地涌来。如果你今天感到心情沉重,不要失去希望,因为明天可能会带来更严峻的挑战。首先,让我们深入讨论名为1929大萧条的时期。这场大萧条实际上是指从1929到1933的一场影响深远的经济危机。这场危机首先起源于美国,然...
  • 0.00015693个比特币等于多少人民币/美金

    0.00015693个比特币等于多少人民币/美金
    0.000 15693比特币等于多少人民币?根据比特币对人民币的最新汇率,0.000 15693比特币等于10.6 1678529美元/76.86554996人民币。比特币(BTC)【比特币价格翻倍】美元(USDT)人民币(CNY)0.000/克洛克-0/5693【数字货币矿机】10.6 167852976.8655254996比特币对人民币的最新汇率为:489,807.72 CNY(1比特币= 489,807.72人民币)(1美元=7.24人民币)(0.00015693 U...
标签列表