以太坊构建本地私有网络

2023-11-16

以太坊网络

  •  以太网网络的实时的统计数据信息可以在EthStats.net(https://ethstats.net/)上查看。这网站上包含了许多重要的数据,如当前区块,交易,gas价格等。这页面上展示的节点只是实际网络中的节点的一部分。任何人都可以添加他们自己的节点到这个网站上。
  • 添加方法: https://github.com/cubedro/eth-netstats
  • EtherNodes.com 这网站统计了当前和历史上的有关节点的数量,这网站的统计信息包括了主网和测试网络。
  • etherchain.org 实时区块链统计信息

以太坊网络类型

  • 现在大多数的以太坊项目都运行在以太坊公有链上,以太坊公有链可以为这些项目提供大量的用户,网络节点,货币和市场。但是,也有一些项目更加适合运行在私有链或联盟链(一群值得信赖的伙伴)上。比如,一些垂直领域里面的公司,如银行正在试图使用以太坊建立他们自己的私有区块链平台
  • 公有链:世界上任何一个人都可以参与的区块链。用户可以查看,可以发送交易,也可以参与保持数据一致性的运算等。
  • 私有链:完全的私有链是指写权限是由一个人或一个单个组织控制的链。私有链的读权限是可以公开的或者是有限度的在一定范围公开的。比如私有链可以用在数据库的管理,公司内部的管理等。
  • 联盟链:联盟链是指,数据一致性的运算被预先设定好的几个节点共同控制的链。比如,有15家银行组成了一个财团链,在这个链上的每一个节点的每一次的操作都需要10个节点的共同签名才能被验证。这区快链上的读权限可能是公开的,也有可能是部分公开的。
  • 虽然私有链和联盟链不会和公有链之间有任何的链接,但是它们通常被当做开发者的开发环境,它们也同样对以太坊区块链生态系统做出着不可估量的贡献。

以太坊查看网络状态

  •  查看链接状态 
    net.listening true 
    net.peerCount 4
  • 查看自己的伙伴的网络信息 
    admin.peers
  • 查看自己的网络信息 
    admin.nodeInfo 

以太坊加快下载速度

  • 当以太坊客户端一旦运行,就会自动去下载区块链数据。这下载的速度跟客户端的设置,链接网路的速度,同伴的数量有关。下面是一些可以加快区块链下载速度的选项。
  • 使用geth:
  • 使用geth客户端,你可以在命令行中添加一些选项,可以加快区块链数据的下载速度。你可以在命令行中使用—fast标志,这样客户端就不会保留过去的交易数据。
  • 但是要注意的是,这个参数,只有在你的客户端没有下载任何区块链数据的情况下才能使用。如果你客户端已经下载了一些数据,那这个就不起作用了。
  • 下面是一些具体参数的说明,可以加快你的数据的同步。

 参数说明:

  • --fast

    这个参数会加快同步的速度,并且显著的降低同步的数据的大小。

  • --cache=1024

    调节内存缓存(单位是M),默认是16M,可以根据自己计算机的情况,适当调大这个值,如256, 512, 1024 (1GB), 或 2048 (2GB)

  • --jitvm

    开启JIT VM.

  • 整个命令如下面所示的样子:
    geth --testnet --fast --cache=1024 --jitvm console

以太坊静态节点

  • 静态节点
  • 如果有一个节点,你一直想要和它保持链接,那么你可以把那个节点配置成你的静态节点
  • 配置方法
    <datadir>/static-nodes.json
  • 把节点信息写入这个文件,格式如下:
     ["enode://f4642fa65af50cfdea8fa7414a5def7bb7991478b768e296f5e4a54e8b995de102e0ceae2e826f293c481b5325f89be6d207b003382e18a8ecba66fbaf6416c0@33.4.2.1:30303", "enode://pubkey@ip:port" ]
  • 使用命令 
    >admin.addPeer("enode://f4642fa65af50cfdea8fa7414a5def7bb7991478b768e296f5e4a54e8b995de102e0ceae2e826f293c481b5325f89be6d207b003382e18a8ecba66fbaf6416c0@33.4.2.1:30303")

以太坊构建本地私有网络

  • 在本地私有的测试网络上挖矿,或构建去中心化的应用都要比在公共的测试网络上方便很多。
  • 使用geth命令行工具构建本地私有测试网络需要指定以下参数信息:
    •   自定义genesis文件
    •   自定义数据目录
    •   自定义网络ID
    •   (推荐)关闭节点发现协议
  •  这genesis(创世)区块是区块链的起点,是它的第一块区块,0号区块,唯一一个没有前任的区块。这个协议确保了没有其他节点会和你的节点的区块链版本一致,除非它们的创世区块和你的一模一样。通过这种方法,你就可以创建任意多的私有区块链。 
CustomGenesis.json :
{
"nonce": "0x0000000000000042", "timestamp": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "extraData": "0x0", "gasLimit": "0x8000000", "difficulty": "0x400", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x3333333333333333333333333333333333333333", "alloc": { } }
  • Mixhash:一个256位的哈希值,和nonce配合,一起用来证明在区块链上已经做了足够的计算量(工作证明)。这个nonce 和 mixhash 的组成,必须满足一个在黄皮书中所描述的数学上的条件,黄皮书 4.3.4。
  • Nonce:一个64位的哈希值,和mixhash配合,一起用来证明在区块链上已经做了足够的计算量(工作证明)
  • Difficulty 定义挖矿的目标,可以用上一个区块的难度值和时间戳计算出来,值越高,矿工越难挖到区块
  • Alloc:预先填入一些钱包和余额
  • Coinbase:160位的钱包地址。在创世区块中可以被定义成任何的地址,因为当每挖到一个区块的时候,这个值会变成矿工的etherbase地址
  • Timestamp:一个unix的time()函数的输出值,时间戳
  • extraData:32字节长度,可以为私有链留下一些信息,如你的姓名等,用以证明这个私有链是你创建的
  • gasLimit:当前链,一个区块所能消耗的gas上限

私有链中会使用到的命令行参数

  • --nodiscover:添加这个参数,确保没有人能发现你的节点。不然的话,可能有人无意中会链接到你的私有区块链。
  • --maxpeers 0:使用maxpeers 0,如果你不希望其他人连接到您的测试链。当然,您也可以调整这个数,如果你知道有多少同伴会连接你的节点。
  • --rpc:在你的节点上激活RPC接口。这参数在geth中默认启用。
  • --rpcapi "db,eth,net,web3":这个命令描述哪些接口可以通过RPC来访问,默认情况下,geth开启的是web3接口。
  • --rpcport "8080":将端口号设置成8000以上的任何一个你网络中打开的端口。默认是8080。
  • --rpccorsdomain http://chriseth.github.io/browser-solidity/:设置可以连接到你的节点的url地址,以执行RPC客户端的任务。最好不要使用通配符 * ,这样将允许任何url都可以链接到你的RPC实例。
  • --datadir "/home/TestChain1":私有链的数据目录,确保与公共以太坊链的数据目录区分开来。
  • --port "30303":这是“网络监听的端口”,您可以用它手动的和你的同伴相连。
  • --identity "TestnetMainNode":为你的节点设置一个ID。用于和你们的一系列同伴进行区分。

运行geth 依照上面所述,配置好命令行,运行:

Windows:

geth --identity "MyNodeName" --rpc --rpcport "8086" --rpccorsdomain "*" --datadir "C:\chains\TestChain1" --port "30303" --nodiscover --rpcapi "db,eth,net,web3" --networkid 1006 init /path/to/CustomGenesis.json

 

注意:在运行以上命令前,必须在datadir参数指定的目录中先创建一个chaindata目录

运行geth 依照上面所述,配置好命令行,初始化创世区块,运行:

Windows:

geth --identity "MyNodeName" --rpc --rpcport "8086" --rpccorsdomain "*" --datadir "C:\chains\TestChain1" --port "30303" --nodiscover --rpcapi "db,eth,net,web3" --networkid 1006 init /path/to/CustomGenesis.json

 

注意:在运行以上命令前,必须在datadir参数指定的目录中先创建一个chaindata目录

每次,当你想要使用你自定义的私有链时,你都需要先使用geth来运行以上的命令来启动它。

geth --identity "MyNodeName" --rpc --rpcport "8080" --rpccorsdomain "*" --datadir "C:\chains\TestChain1" --port "30303" --nodiscover --rpcapi "db,eth,net,web3" --networkid 1006 console

 

转载于:https://www.cnblogs.com/little-kwy/p/10401771.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以太坊构建本地私有网络 的相关文章

随机推荐

  • Flex 布局

    一 Flex布局 Flex 是Flexible Box的缩写 意思是弹性布局 用来为盒模型布局提供最大的灵活性 任何一个容器都可以指定为flex布局 box display flex 行内元素也可以使用flex布局 box display
  • TCP报文段结构

    TCP报文段结构 源端口号和目的端口号 含义从名字就能看出来 序号和确认号 这二个字段被 TCP 发送方和接收方用来实现可靠数据传输服务 每个字段都是32比特 接收窗口 该字段用于流量控制 大小为16比特 首部长度 该字段指示了以 32 比
  • 12串口通信的定义-2

    1 设备状态信号线 数据装置准备好 DSR 高电平有效 数据终端准备好 DTR 高电平有效 2 请求发送 RTS 当数据终端设备 DTE 要发 允许发送 CTS 是对请求发送信号 RTS 的 3 接收控制线 载波检测 DCD 当数据通信设备
  • ultraiso 下载+破解+Linux U盘启动制作

    1 到官网下载ultraiso https cn ultraiso net xiazai html 2 将该软件安装到windows上 打开输入注册码进行破解 用户名 Guanjiu 注册码 A06C 83A7 701D 6CFC 3 破解
  • 处理雪花算法等造成的精度丢失问题

    前端js精度丢失因为number处理的是16位 雪花算法是19位 在前后端交互的时候就会造成精度损失 方法一 如果是专门针对某一个Id的话 JsonSerialize using ToStringSerializer class 注解可以实
  • c++数据结构第六周(图),深搜、广搜(stl版)

    本方法皆用vector进行邻接表模拟 7 1 图的先深搜索 作者 唐艳琴 单位 中国人民解放军陆军工程大学 输出无向图的给定起点的先深序列 输入格式 输入第一行给出三个正整数 分别表示无向图的节点数N 1
  • 秒杀系统中常见问题及解决方案

    秒杀中的常见问题的解决 1 解决超卖的问题 1 Redis预减库存 有一个下单请求过来时预减库存 若减完后的redis库存小于0说明已经卖完 此时直接返回客户端已经卖完 后续使用内存标记 减少Redis访问 若预减库存成功 则异步下单 请求
  • DateFormat setLenient

    SimpleDateFormat df new SimpleDateFormat MMddyyyy With lenient parsing the parser may use heuristics to interpret inputs
  • 惠普服务器关机自动重启,HP笔记本关机自动重启的解决办法

    部分型号的HP笔记本会在点击关机按钮的时候出现自动重启的现象 如 DV2803 V3608TX 这个是网卡的Wake On Lan功能而引起的 也就是网络唤醒功能 方法一 解决办法是在开机启动时按F10 进入bios设置界面 选择 系统设定
  • 为什么现在不看好 CV 方向了呢?

    来源 https www zhihu com question 383486199 编辑 深度学习与计算机视觉 声明 仅做学术分享 侵删 作者 匿名用户https www zhihu com question 383486199 answe
  • Android--图片轮播(banner)

    推荐第三方框架banner 地址 https github com youth5201314 banner 使用步骤 Step 1 依赖banner Gradle dependencies compile com youth banner
  • 进程控制-进程终止(exit、_exit)

    知道了进程怎么创建 接下来就来看看怎么终止一个进程终止函数exit 和 exit 函数 头文件 声明 exit stdlib h void exit int status exit unistd h void exit int status
  • hadoop和spark读取GBK编码乱码

    转自 http www cnblogs com teagnes p 6112019 html 首先来看一下为什么会出现这个问题 下面是一个最简单的spark的wordcount程序 sc textFile filePath 方法从文本文件创
  • u8系统怎么连接服务器,u8服务器和客户端怎么连接服务器

    u8服务器和客户端怎么连接服务器 内容精选 换一换 Linux云服务器一般采用SSH连接方式 使用密钥对进行安全地无密码访问 但是SSH连接一般都是字符界面 有时我们需要使用图形界面进行一些复杂操作 本文以Ubuntu 18 04操作系统为
  • 【华为OD机试真题 Java】英文句子倒序

    前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun09
  • 解决谷歌浏览器在F12情况下自动断点问题Paused in debugger

    解决谷歌浏览器在F12情况下自动断点问题 Paused in debugger 最近在使用谷歌浏览器在调试js脚本的时候 每次按F12 再刷新页面 都会跳出如上图所示的图标 自动进入断点调试 如果不想让它自动断点可以按一下3步去设置 1 打
  • 什么是对象存储OSS,看完你就懂了

    伴随着业务的发展 企业经营规模的扩张 存储需求量不断增加 这时候就需要一种方法让数据处理起来更简单 另外支持扩展性 便于访问信息 对象存储就是图片 音频 视频等非结构化数据的数据池 相对于主机服务器 具有读写速度快 有利于分享的特点 那么
  • Docker-Compose.yml详解

    说在前面 本文是基于version 3 build 在构建时应用的配置选项 build 可以指定为包含构建上下文路径的字符串 version 3 7 services webapp build dir 或者 作为具有在context下指定的
  • Leetcode刷题-312 :戳气球

    刷题记录 1 题目介绍 2 题目分析 2 1 穷举不可行 2 2 区间层次的动态规划 3 题目解答 1 题目介绍 有 n 个气球 编号为0 到 n 1 每个气球上都标有一个数字 这些数字存在数组 nums 中 现在要求你戳破所有的气球 戳破
  • 以太坊构建本地私有网络

    以太坊网络 以太网网络的实时的统计数据信息可以在EthStats net https ethstats net 上查看 这网站上包含了许多重要的数据 如当前区块 交易 gas价格等 这页面上展示的节点只是实际网络中的节点的一部分 任何人都可