geth下载安装配置环境及联盟链的搭建

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

以太坊概论考察课

更具课堂教学讲解,参考开放资料。使用所学的知识,创建项目并完成要求的内容。包含的功能和要求具体如下:

一:安装并运行geth客户端

1、下载安装geth

首先下载geth:https://geth.ethereum.org/downloads/

geth下载,区块链,eth

geth下载,区块链,eth
geth下载,区块链,eth
​ 选择路径↓

geth下载,区块链,eth

2、配置环境变量

geth下载,区块链,eth

3、运行geth如下命令所示:

查看geth命令。使用geth version查看geth 版本号,判断geth是否成功安装。如下命令所示:

`geth version`

geth下载,区块链,eth

可以通过geth --help查看geth工具所支持的命令和相关参数,方便后期关于geth的操作。

如下命令所示:

geth --help

运行结果如下:

geth下载,区块链,eth

二:搭建geth联盟链网络,并实现多节点间的通信

1、初始化创世区块

在geth的根目录下添加genesis.json文件,genesis.json中代码如下

geth下载,区块链,eth

{
   "alloc": {
      "0x63b47f8abf5d47c9a90bab0ce0c6222b6cb2808a": {	//使用账户1创建
      "balance": "999000000000000000000"
      }
   },
    "config":{
        "chainId":10,
        "homesteadBlock":0,
        "eip155Block":0,
        "eip158Block":0
    },
    "nonce":"0x0000000000000042",
    "mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
    "difficulty": "0x2000",
    "alloc": {},
    "coinbase":"0x0000000000000000000000000000000000000000",
    "timestamp": "0x00",
    "parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
    "extraData": "",
    "gasLimit":"0xffffffff"
}

使用geth --datadir chain1 init genesis.json初始化创世区块

geth --datadir chain1 init genesis.json

geth下载,区块链,eth

在geth的安装目录下启动cmd,输入

geth --datadir chain1 --nodiscover console

进入geth控制台模式,其中chain1为帐户和区块数据目录

2、搭建联盟链,

win+R打开第二个控制台输入以下命令。 (初始化创世块的命令)

geth --datadir ./data-init2/ init genesis.json

启动并且进入控制台。(注意此处多一个ipcdiable参数,如与第一个控制台一样,会报错:Erro starting protocol stack:Access is denied)

分别在两个控制台创建新的账号,并记录地址

使用eth.accounts命令查看现有帐户,当前是空

使用 personal.newAccount("root")创建2个账户 //root为密码

账户1:0x134a886c1f30bd52febed873054de8b7ae7e92e5

账户2:0x751b26bf96544c6bc50c9290a0e64631f7a82ec1

使用eth.getBalance()命令查看现有帐户,当前是空

1.查看节点的peers的情况。

admin.peers

通过分享enode地址的方式来让两个节点建立链接。

admin.nodeInfo.enode

复制节点2的enode的信息,在节点1的控制台执行以下命令。

admin.addPeer ("enode://0bd1b7da689dd574eae04d20484086a5c59d81981b927602ef745233a72eac3280ea1a193a41c24d05fae54ae9e78d4fd76b590ffc356c6786eb6f70b0e6b276@[::]:40404?discport=0")

在控制台1执行挖矿miner.start()时,我们会发现节点2的控制台出现了这样的日志信息,则同步成功

查看coinbase地址金额发现有增长。

三:使用solidity编写智能合约程序,并部署在geth客户端

在remix中编译一个简单的智能合约

`pragma solidity ^0.4.18;`

`contract test{`
    `function multiply(uint a)public view returns(uint d){`
        `return a*7;`
    `}`
`}

编译上述代码,在编译详情里可以看到字节码和ABI信息

{
    --
    "object": "608060405234801561001057600080fd5b5060bb8061001f6000396000f300608060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b348015604f57600080fd5b50606c600480360381019080803590602001909291905050506082565b6040518082815260200191505060405180910390f35b60006007820290509190505600a165627a7a723058209135a65fdddd7be677810243db99bc4cbe46fcf74ee4ce1a3a8cc7fdbab004ef0029",
    --
}

ABI文件

[
    {
        "constant": true,
        "inputs": [
            {
                "name": "a",
                "type": "uint256"
            }
        ],
        "name": "multiply",
        "outputs": [
            {
                "name": "d",
                "type": "uint256"
            }
        ],
        "payable": false,
        "stateMutability": "view",
        "type": "function"
    }
]

通过ABI创建合约对象,而后在cmd中解锁我们之前创建的账户,并部署合约

contractInstance = myContract.new({data: bytecode,gas: 1000000, from: eth.coinbase}, function(e, contract){
  if(!e){
    if(!contract.address){
      console.log("Contract transaction send: Transaction Hash: "+contract.transactionHash+" waiting to be mined...");
    }else{
      console.log("Contract mined! Address: "+contract.address);
      console.log(contract);
    }
  }else{
    console.log(e)
  }
})

四:通过终端操作,完成合约功能调用(创建账户,并测试挖矿功能

使用第一步代码创建节点3,获取encode地址与节点2链接

解锁节点3

使用节点二对节点三进行转账操作

发送转账命令

eth.sendTransaction({from: "0x134a886c1f30bd52febed873054de8b7ae7e92e5", to: "0x0df12fd40b27405558103da6f6938eb8c257d", value: "74000000000000000"})

查询余额为

74文章来源地址https://www.toymoban.com/news/detail-783989.html

五:多节点之间完成交易的功能,并设置和估算gas用量

设置gas值

01337036)]

使用节点二对节点三进行转账操作

发送转账命令

eth.sendTransaction({from: "0x134a886c1f30bd52febed873054de8b7ae7e92e5", to: "0x0df12fd40b27405558103da6f6938eb8c257d", value: "74000000000000000"})

查询余额为

74

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

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

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

相关文章

  • Python自动化测试 环境搭建 Selenium、WebDriver下载、安装、配置、基本使用详解

    基本于Python语言 和 Selenium框架,使用PyCharm 开发环境,详细介绍自动化测试环境的搭建 以及 基本的使用方法。 Python环境目前已被大部分主流操作系统所支持,比如在Linux、Mac、Unix等系统上就自带了Python环境,但在Windows系统上目前还需要自己安装,(当然如已经安装过了的话

    2024年02月03日
    浏览(72)
  • spring cloud 搭建消息中间件 RabbitMQ 环境、Mac/Windows下载安装RabbitMQ、配置RabbitMQ环境变量

    spring boot、spring cloud工程:Mac/Windows下载安装Erlang、RabbitMQ,并配置环境变量。 这里学习如何安装 RabbitMQ,因为远程配置中心的动态更新需要结合 RabbitMQ 来使用。 这里给出自己下载和使用的百度网盘链接:Erlang 版本为25.3.2、RabbitMQ版本为3.12.1 : 链接:百度网盘链接 提取码:

    2024年02月15日
    浏览(70)
  • MySQL 2 环境搭建(MySQL5.7.43和8.0.34的下载;8.0.34的安装、配置教程 )

    目录 MySQL的下载、8.0.34的安装及配置  1 MySQL版本介绍  2 MySQL 下载 1. 下载地址 2. 打开官网,点击DOWNLOADS ​编辑 3. 点击 MySQL Community Server 4. 在General Availability(GA) Releases中选择适合的版本 5.下载8.0.34和5.7.43版本 3 MySQL8.0 版本的安装 步骤1:双击下载的mysql-installer-community-8.0.34

    2024年02月03日
    浏览(52)
  • 简易区块链的搭建(3)——交易

    1. UTXO账户模型 产生背景: 为了解决第一类双花问题(一笔钱花两次) 原理介绍: 我们先来介绍传统的金融模式,你有10元存款,想转给我3元,银行会怎么操作? 很显然,他会将你的账户减3元,将我的账户加3元。 这种交易模式记录的是 交易结果 而UTXO账户模型记录的是

    2024年04月09日
    浏览(83)
  • 区块链入门教程(4)--搭建单机四节点FISCO BCOS联盟链

    要学习区块链,首先得有一个区块链系统去操作、学习、研究,FISCO BCOS区块链系统是一个应用广泛、文档全面、知名度向量的区块链系统,我们就从该系统安装开始入手学习。

    2024年02月05日
    浏览(44)
  • Fisco Bcos区块链一(搭建单群组FISCO BCOS联盟链)

    技术文档:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html 1、搭建单群组FISCO BCOS联盟链 1. 安装centos依赖包 安装依赖包openssl、curl 2. 创建操作目录, 下载安装脚本 如果因为网络问题导致长时间无法下载build_chain.sh脚本,请尝试 3. 搭建单群组4节点联盟链 在fisco目录下执

    2024年02月10日
    浏览(49)
  • 简易区块链的搭建(2)——工作量证明

    1. big.Int 的一些常见方法和属性: SetInt64(x int64) :将一个 int64 类型的整数赋值给 big.Int 。 SetString(s string, base int) :将一个字符串表示的整数按照指定的进制转换为 big.Int 。 Add(x, y *big.Int) *big.Int :将两个 big.Int 相加,并返回结果。 Sub(x, y *big.Int) *big.Int :将一个 big.Int 减去另

    2024年04月25日
    浏览(49)
  • 联盟链HyperLeader Febric环境搭建

    1. Apt换源 打开网址:ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror,选择对应Ubuntu版本号,将红框中的内容进行复制。 执行指令:sudo gedit /etc/apt/sources.list,将以上内容粘贴以替换原来文件的内容。 执行指令:sudo apt update,更新镜像源。 2. 安装

    2024年01月25日
    浏览(36)
  • Ubuntu20.04安装区块链项目所需的nodejs、go、truffle、solidity、geth

    目录 0、最开始需要更新atp库 1、安装nodejs 2、安装truffle 3、安装solidity 4、安装 go 5、安装aptitude: 6、安装git 7、下载geth 命令如下: sudo apt-get update 需要的时间比较长,但是后续下载不需要再更新(我也不确定,但是我后续更新是完全没用,如果使用apt命令报错,可以再更新一

    2024年02月09日
    浏览(46)
  • 基于区块链的商品交易溯源系统开发模式搭建 - 使用 Python

    基于区块链的商品交易溯源系统开发模式搭建 - 使用 Python 引言: 区块链技术在商品交易溯源领域具有广泛的应用前景。Hyperledger Fabric是一个开源的企业级区块链平台,具备高度的可扩展性和灵活性,非常适合构建商品交易溯源系统。本文将介绍如何使用Python开发基于区块链

    2024年04月27日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包