以太私有链搭建

这篇具有很好参考价值的文章主要介绍了以太私有链搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 以太坊

以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。

  1. 私有链

定义:

区块链分为以下三类:“公有链” (Public blockchain)、“私有链” (Private blockchain)与“联盟链” (Consortium blockchain)。其中,私有链指的是对单独的个人或实体开放。

特点:

1、交易速度非常之快一个私有链的交易速度可以比任何其他的区块链都快,甚至接近了并不是一个区块链的常规数据库的速度。

2、给隐私更好的保障私有链使得在那个区块链上的数据隐私政策像在另一个数据库中似的完全一致;不用处理访问权限和使用所有的老办法。

3、交易成本大幅降低甚至为零私有链上可以进行完全免费或者至少说是非常廉价的交易。如果一个实体机构控制和处理所有的交易,那么他们就不再需要为工作而收取费用。

3.创建

前提条件

有一个有效的 Geth ,(可参考官网Home | go-ethereum

专用网络

由多个只能相互连接的以太坊节点组成。为了在本地运行多个节点,每个节点都需要一个单独的数据目录(--datadir)。

创建账户(可以使用 geth 帐户命令生成签署者帐户密钥(可以多次运行此命令以创建多个签署者密钥))

geth --datadir node1/ account new

geth --datadir node2/ account new

geth --datadir node3/ account new

把三个节点的地址和密码都分别写在文件里,以后后面使用.

echo 'node1_addr' >> account.txt

echo 'node2_addr' >> account.txt

echo 'node3_addr' >> account.txt

echo 'password1' >> node1/password.txt

echo 'password2' >> node2/password.txt

echo 'password3' >> node3/password.txt

创建创世区块

每个区块链都以创世区块开始。当 Geth 首次使用默认设置运行时,它会将主网创世纪提交到数据库。对于专用网络,通常最好使用不同的创世区块。创世块是使用 genesis.json 文件配置的,该文件的路径必须在启动时提供给 Geth。

使用以太私有链管理工具puppeth设置创世块:

以太坊私链搭建,区块链,智能合约,web3,去中心化,Powered by 金山文档
以太坊私链搭建,区块链,智能合约,web3,去中心化,Powered by 金山文档

创建genesis.json文件

将用作 genesis.json 中额外数据键附带的值。在下面的示例中,extradata 包含一个初始签名者地址,0x7df9a875a174b3bc565e6424a0050ebc1b2d1d82。

{

"config": {

"chainId": 12345,

"homesteadBlock": 0,

"eip150Block": 0,

"eip155Block": 0,

"eip158Block": 0,

"byzantiumBlock": 0,

"constantinopleBlock": 0,

"petersburgBlock": 0,

"istanbulBlock": 0,

"berlinBlock": 0,

"clique": {

"period": 5,

"epoch": 30000

}

},

"difficulty": "1",

"gasLimit": "8000000",

"extradata": "0x00000000000000000000000000000000000000000000000000000000000000007df9a875a174b3bc565e6424a0050ebc1b2d1d820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",

"alloc": {

"7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },

"f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }

}

}

初始化 Geth 数据库

要创建使用此创世区块的区块链节点,请首先使用 geth init 导入并为新链设置规范创世区块。这需要将 genesis.json 的路径作为参数传递。

geth --datadir node1/ init genesis.json

geth --datadir node2/ init genesis.json

geth --datadir node3/ init genesis.json

创建一个bootnode

bootnode的作用是路由功能,可以发现网络中的节点。

引导节点需要一个密钥,可以使用以下命令创建该密钥,这将保存一个密钥以进行启动.key:然后可以使用此密钥生成引导节点,传递给 -addr 的端口选择是任意的。

bootnode -genkey boot.key

bootnode -nodekey boot.key -addr :30306

注:端口必须是空闲未被占用的!

例:开始运行bootnode服务:

bootnode -nodekey boot.key -verbosity 9 -addr :30310

INFO [02-07|22:44:09] UDP listener up self=enode://3ec4fef2d726c2c01f16f0a0030f15dd5a81e274067af2b2157cafbf76aa79fa9c0be52c6664e80cc5b08162ede53279bd70ee10d024fe86613b0b09e1106c40@[::]:30310

运行私有链节点

现在可以启动这两个节点。为每个节点打开单独的终端,使引导节点在原始终端中运行。在每个终端中,运行以下命令(在适当的情况下将 node1 替换为 node2,并为每个节点提供不同的端口 ID。还必须提供节点 1 的帐户地址和密码文件:

①geth --networkid 14333 --datadir node1 --bootnodes 'enode://109d5687e90cc391508f88137a20437c41bb5f21094dd96fbc6cea871840bf1da5fftc7bdef4b8952a4771bd89fa09355749c9aa29g47f3er7c1ce42fa72b784@127.0.0.1:0?discport=30305' --port 30303 --syncmode 'full' --http --allow-insecure-unlock --http.corsdomain '*' --http.port 8547 --authrpc.port 8566 --unlock 0xe125227508qbcb5fd648f5ba023a8d83479203c5 --mine console --ipcpath "geth1.

--ipcpath "geth1:由于某些端口原因需要添加给命令,为防止后面节点无法启动!

geth --networkid 14333 --datadir node1 --bootnodes 'enode://109d5687e90cc391508f88137a20437c41bb5f21094dd96fbc6cea871840bf1da5fftc7bdef4b8952a4771bd89fa09355749c9aa29g47f3er7c1ce42fa72b784@127.0.0.1:0?discport=30305' --port 30303 --syncmode 'full' --http --allow-insecure-unlock --http.corsdomain '*' --http.port 8547 --authrpc.port 8566 --unlock 0xe125227508qbcb5fd648f5ba023a8d83479203c5 --mine console --password node1/password.txt--ipcpath "geth1.(无需输入密码)

成功指示:

以太坊私链搭建,区块链,智能合约,web3,去中心化,Powered by 金山文档

连接上控制台:

geth attach node1/geth.ipc

geth attach http://127.0.0.1:8555

控制台基本命令:

eth.accounts

admin.peers

net.peerCount文章来源地址https://www.toymoban.com/news/detail-745426.html

部署发布

以太坊私链搭建,区块链,智能合约,web3,去中心化,Powered by 金山文档

到了这里,关于以太私有链搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链研究(一):Windows下搭建以太坊私有链,部署智能合约实现数据上链功能(完整跑通版!好累!)

    先说一下,之前学习部署以太坊私有链,看了好多博文,发现节点之前总是无法连接识别,踩了好多坑,,,今天我把自己完整跑通的实验流程给大家展示出来,希望有所帮助! 摘要:本文主要介绍区块链网络构建的方式,区块链网络仅用于实验,主要搭建以太坊私有链,在

    2024年04月08日
    浏览(52)
  • 【问题】以太坊私链连接钱包报错解决汇总

    虚拟机 MetaMask 私有链 rpc 以太坊 区块链私链搭建完成之后,连接虚拟机上的私链与MetaMask钱包过程调试问题解决,主要包括 以太坊命令行不识别–rpc 无法获取链 IC,您的 RPC URL 地址是正确的么? RPC端点使用链不同的链XXXX 使用如下含有rpc的命令启动私有链 虚拟机中的ETH命令

    2023年04月09日
    浏览(41)
  • web3系列———2.以太坊与智能合约

    主流币: 中本聪设计的比特币大获成功后,各种区块链和其对应的加密货币层出不穷,其中不乏新技术的使用,不过大部分的模仿货币最后都销声匿迹了,最终存活并存有大量用户的被称作主流币。 BTC比特币 ETH以太坊 LTC莱特币 XRP瑞波币 USDT (代币) USDC (代币) BUSD (代币) …

    2024年04月24日
    浏览(39)
  • Web3.js在以太坊上部署和调用智能合约

    介绍如何使用Web3.js在以太坊上部署和调用智能合约;Web3.js是以太坊JavaScript API的实现,它可以与以太坊区块链进行交互 智能合约编写 使用Solidity编写一个简单的智能合约,然后使用Web3.js将其部署到以太坊区块链,通过JavaScript调用该智能合约 这个智能合约非常简单。它有两

    2024年02月16日
    浏览(47)
  • 区块链工作原理(区块链治理系统、比特币、以太坊、智能合约)

    每个国家或者城市都有自己的一套治理系统来创建、更新和执行法律。区块链也都有自己的治理系统。总的来说,区块链治理可分为两类: On-Chain Governance Off-Chain Governance 链上治理是一个管理和实施加密货币区块链变化的系统。在这种类型的治理中,制定变化的规则被编码到

    2024年02月02日
    浏览(62)
  • 以太坊Dapp通过web3js部署调用智能合约

    参考视频:https://www.bilibili.com/video/BV14z4y1Z7Jd?p=1 https://remix.ethereum.org/ 创建一个新的文件夹 mkdir MyDapp2 启动 ganache-cli 下载web3 npm install web3 ,注:ganache的启动和deploy.js要在同一个目录。 先进行测试 node deploy.js 部署合约 web3的版本:1.7.1 复制 WEB3DEPLOY 的内容到deploy.js == ganache需要

    2023年04月23日
    浏览(47)
  • 区块链DAPP开发 以太坊智能合约框架有哪些

    Truffle 是一个在以太坊进行 DApp 开发的世界级开发环境、测试框架。 使用 Truffle 开发有一以下优点: 内置智能合约编译,链接,部署和二进制(文件)管理。 可快速开发自动化智能合约测试框架。 可脚本化、可扩展的部署和迁移框架。 可管理多个不同的以太坊网络,可部署

    2024年02月02日
    浏览(49)
  • 区块链web3智能合约Solidity学习资源整理

    Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。 Solidity中文官方文档: https://solidity-cn.readthedocs.io/zh/develop/ https://learnblockchain.cn/docs/solidity/index.html 在线rem

    2024年03月19日
    浏览(73)
  • 【区块链技术开发】十个比较流行的以太坊智能合约开发框架

    专栏:【区块链技术开发】 前期文章: 【区块链技术开发】剖析区块链Ganache模拟器工具及其智能合约部署区块链的查询方式 【区块链技术开发】基于Web3.js以太坊网络上的智能合约的交互及其应用 【区块链技术开发】OpenZeppelin智能合约库:提高智能合约的安全性和可靠性,

    2024年02月02日
    浏览(69)
  • 【区块链 | 智能合约】Ethereum源代码(10)- 以太坊Downloader源码分析

    上一节分析到Fetcher用于同步网络节点的新区块和新的交易数据,如果新区块和本地最新的区块相隔距离较远,说明本地区块数据太旧,Fetcher就不会同步这些区块。这时候就要借助Downloader来同步完整的区块数据。 一,启动Downloader handler 初始化的时候会进行Downloader的初始化:

    2024年02月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包