使用web3连接Georli测试网络
文章目录
- 1.使用geth方式在终端
- 2.写成脚本
- 2.1 通过metamask (现成的太复杂,搞不太来)
- 2.2 通过自己的接口
- 3.通过truffle方式连接 (不成功)
目前的工作情况是,已在remix写好执行合约并部署在Georli测试网络中,希望能够通过web3连接Georli并访问智能合约,获取详细的信息。
注意点:Goerli测试网络的url为http://goerli.infura.io/v3/<Your-API-Key>
,其中的获取是通过https://infura.io,注册账户再注册项目得到
1.使用geth方式在终端
要连接Goerli测试网络,首先需要安装Node.js框架。安装完成后,通过npm安装Web3库。
首先安装客户端,比如Geth、Parity或Mist,本文安装的是Geth,下载地址是https://geth.ethereum.org/downloads,安装完成后,配置环境变量。
然后通过npm安装Web3库,npm install web3
成功后可使用 geth version
测试,如下图。
下面开始连接。
使用geth --datadir geth-tutorial --goerli --syncmode snap
运行成功后,查看下图红色部分,可发现geth提供三种连接js环境方式,IPC、HTTP和WebSocket。
法一:使用IPC方式与goerli测试网络连接
另起一个终端,运行geth attach \\.\pipe\geth.ipc
运行var Web3=require('web3')
var web3=new Web3(new Web3.providers.HttpProvider('http://goerli.infura.io/v3/<Your-API-Key>'))
web3.isConnected()
测试web3是否连接成功 (始终连接不成功)
法二:使用HTTP方式与goerli测试网络连接 (不成功)
运行geth attach http://127.0.0.1:8551
,注意8551端口需要auth验证。
2.写成脚本
2.1 通过metamask (现成的太复杂,搞不太来)
2.2 通过自己的接口
创建文件get.js,并写入一下内容:
let Web3 = require('web3');
let web3;if(typeof web3 !=='undefined'){ //检查是否已有web3实例web3=new Web3(web3.currentProvider);
}else{//否则就连接到给出节点web3=new Web3();web3.setProvider(new Web3.providers.HttpProvider("https://goerli.infura.io/v3/<Your-API-Key>"));module.exports = web3
}// 使用检查0号区块判断是否连接成功
web3.eth.getBlock(0, function(error, result){if(!error)console.log("result", result)elseconsole.log("something wrong,the connection might be failed");console.error("error", error);
})
在cmd里运行node get.js,可得到创世区块的详细信息
之后修改该文件,继续写入:
var abi = JSON.parse('[ { "constant": false, "inputs": [ { "name": "_num", "type": "uint256" } ], "name": "setNum", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "from", "type": "address" }, { "indexed": false, "name": "to", "type": "address" }, { "indexed": false, "name": "_num", "type": "uint256" } ], "name": "Sent", "type": "event" }, { "constant": true, "inputs": [], "name": "getNum", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "num", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" } ]');
var address = '0xebb7427fe4cdb8908a375b2bf4ce539cbe195cfc';
var contract = new web3.eth.Contract(abi, address)
其中,abi是通过remix获得,address是合约部署后的地址。
重新运行node get.js
,可得到合约的详细内容。
3.通过truffle方式连接 (不成功)
在truffle-config.js文件里修改
const HDWallet = require('truffle-hdwallet-provider');
const infuraKey = "fj4jll3k.....";const fs = require('fs');
const mnemonic = fs.readFileSync(".secret").toString().trim();
// Useful for deploying to a public network.
// NB: It's important to wrap the provider as a function.
goerli: {provider: () => new HDWalletProvider(mnemonic, `https://goerli.infura.io/v3/<Your-API-Key>`),network_id: 5, // Ropsten's idgas: 5500000, // Ropsten has a lower block limit than mainnetconfirmations: 2, // # of confs to wait between deployments. (default: 0)timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50)skipDryRun: true // Skip dry run before migrations? (default: false for public nets )
},
相关文章:
使用web3连接Georli测试网络
文章目录1.使用geth方式在终端2.写成脚本2.1 通过metamask (现成的太复杂,搞不太来)2.2 通过自己的接口3.通过truffle方式连接 (不成功)目前的工作情况是,已在remix写好执行合约并部署在Georli测试网络中&a…...
Python uWSGI 的安装配置
以 Ubuntu/Debian 为例,先安装依赖包: apt-get install build-essential python-dev Python 安装 uWSGI 1、通过 pip 命令: pip install uwsgi 2、下载安装脚本: curl http://uwsgi.it/install | bash -s default /tmp/uwsgi 将…...
033.Solidity入门——20函数的可视范围
修饰符可见性描述public在合约内和合约外都可以被访问,即合约内外部都可以调用该函数。这种类型的函数可以被合约内和合约外的任何地址调用。private只有在当前合约内可以被访问,即只有合约内可以调用该函数。这种类型的函数只能在合约内部被调用。exter…...
智能家居项目(三)之框架设计及框架代码文件工程建立
目录 一、智能家居项目框架设计草图 二、框架代码文件工程建立 三、添加声音识别模块的串口读取功能 一、智能家居项目框架设计草图 代码思路讲解: 1、一个指令工厂,一个控制工厂,实际上就是通过链表链起来的数据。具体怎么链接起来&…...
全网最全的Ansible中常用模块讲解
目录 前言 一、ansible实现管理的方式 二、Ad-Hoc执行方式中如何获得帮助 三、ansible命令运行方式及常用参数 四、ansible的基本颜色代表信 五、ansible中的常用模块 1、command 2、shell 3、script 4、copy 5、fetch 6、file 7、 unarchive 8、archive 9、h…...
linux程序分析工具
嵌入式调试工具1. nm2. addr2line3. readelf3.1 ELF 文件分类3.2 ELF文件组成3.3使用1. nm nm源于name,是linux下一个文本分析工具,可以罗列指定文件中的符号(函数名、变量,以及符号类型)。 nm命令参数如下: 用法:nm …...
Python3,2分钟掌握Doscoart库,你也能成为艺术家。
2行代码绘制水彩画1、引言2、 代码实战2.1 模块介绍2.2 模块安装2.3 代码示例2.3.1 创建默认图片2.3.2 设置参数创建图片2.3.3 查看设置参数2.3.4 查看配置2.3.5 保存配置2.3.6 加载配置2.3.7 导出配置文件2.3.7 生成Python代码2.3.8 调用文档3、总结1、引言 小屌丝࿱…...
1225057-68-0,Alkyne PEG4 TAMRA-5,四甲基罗丹明-四聚乙二醇-炔基TAMRA红色荧光染料连接剂
中英文别名:CAS号:1225057-68-0 | 英文名:5-TAMRA-PEG4-Alkyne |中文名:5-四甲基罗丹明-四聚乙二醇-炔基物理参数:CASNumber:1225057-68-0Molecular formula:C36H41N3O8Molecular weight&#x…...
Ae:解释素材
所谓解释素材 Interpret Footage,就是通过修改素材的某些属性(像素长宽比、帧速率、颜色配置文件及 Alpha 通道类型等),让它能更好地参与到合成中去。Ae菜单:文件/解释素材快捷键:Ctrl Alt G在项目面板里…...
无文件攻击
无文件攻击是一种高级持续性威胁(APT)的攻击方式,它不会在目标系统的磁盘上留下可执行文件,而是利用系统内置的工具或脚本执行恶意代码,从而绕过传统的安全防护措施。无文件攻击的最大特点就是恶意代码直接在内存中运行…...
JS高级——数据类型
数据类型 基本类型 String: 任意字符串Number: 任意的数字boolean: true/falseundefined: undefinednull: null 对象类型 Object: 任意对象Function 一种特别的对象(可以执行)Array: 一种特别的对象 判断 typeof //不能区分数组与对象、null与obje…...
场景案例│数字员工在银行业的典型应用场景,效率及准确率“双高”
伴随数字经济的高速发展,企业数字化转型步伐不断加快,银行内部信息系统越趋复杂,业务处理的自动化及智能化需求日益旺盛。调查显示,数字员工为60~75%的银行流程带来约30~40%的效能提升,能够全面帮助银行在各场景流程中…...
2023美国大学生数学建模竞赛选题建议
总的来说,这次算是美赛环境题元年,以往没有这么多环境题目,大部分题目都是开放度相当高的题目。C君认为的难度:D>C>AE>BF,开放度:DF>ABE>C。A题 遭受旱灾的植物群落这次A题为环境类题目&…...
整合K8s+SpringBoot+gRpc
本文使用K8s当做服务注册与发现、配置管理,使用gRpc用做服务间的远程通讯一、先准备K8s我在本地有个K8s单机二、准备service-providerpom<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.…...
ROS 教程:使用 Moveit C++ 接口进行拾取和放置任务
文章目录 简介Moveit C++ 接口Gazebo 取放世界初始化界面拾取流程1.移动到原位2.将TCP放在蓝框上方3.打开夹具4. 将 TCP 移近物体5.关闭夹具6. 将 TCP 移至板上方7./8. 降低 TCP 并打开夹具使用 Moveit 避免碰撞将碰撞对象添加到 Moveit 规划组结论参考简介 本教程展示了如何使…...
seo细分和切入点
seo细分和切入点本文重点介绍做SEO网站细分和切入点的方法:当我们的行业和关键词竞争性比较大的时候,我们可以考虑对行业或者产品做细分,从而找到切入点。可以按照以下三个方面进行细分。1、按城市细分例如:A:餐饮培训…...
PyQt5数据库开发1 4.3 QSqlTableModel 之 Qt项目的创建
目录 一、新建Qt项目 1. 编辑资源文件 2. 添加前缀 3. 新建放资源文件的目录 4. 添加图标文件 二、Action 1. 新建打开数据库Action 2. 添加其他Action 三、工具栏 1. 添加工具栏 2. 拖动actOpenDB到工具栏 3. 设置工具栏属性 4. 添加分隔符 5. 添加其他工具 6.…...
【大数据】第三章:详解HDFS(送尚硅谷笔记和源码)
什么是HDFS HDFS是(Hadoop Distributed File System)的缩写,也即Hadoop分布式文件系统。它通过目录树定位在分布式场景下 在不同服务器主机上的文件。它适用于一次写入,多次读出的场景。 HDFS的优缺点 优点 1,高容…...
27岁想转行IT,还来得及吗?
来不来得及不还是看你自身的意愿和条件,这个问题要问你自己吧! 每个人的能力、看法都不同。面对类似的问题,很多人会把侧重点放在IT上,或者27岁上面。那么我们试着换一个方式来问呢:什么时候适合转行,有哪些…...
Web前端CSS清除浮动的5种方法
在移动端清除浮动布局,常用的5种方法: 使用清除浮动的类;使用overflow属性;使用 flex 布局;使用grid 布局;使用 table 布局。 根据实际情况选择适合的方法,需要注意兼容性和语义性问题。在移动…...
Java:博客系统,实现加盐加密,分页,草稿箱,定时发布
文章目录1. 项目概述2. 准备工作2.1 数据库表格代码2.2 前端代码2.3 配置文件3. 准备项目结构3.1 拷贝前端模板3.2 定义实体类3.3 定义mapper接口和 xml 文件3.4 创建其他包4. 统一数据返回4.1 Result 类4.2 统一数据格式5. 注册5.1 逻辑5.2 验证数据规范性5.3 实现注册5.4 前端…...
JuiceFS 在火山引擎边缘计算的应用实践
火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算、网络、存储、安全、智能为核心能力的新一代分布式云计算解决方案。边缘存储主要面向适配边缘计算的典型业务场景&#…...
实验06 二叉树遍历及应用2022
A. 【程序填空】二叉树三种遍历题目描述给定一颗二叉树的特定先序遍历结果,空树用字符‘0’表示,例如AB0C00D00表示如下图请完成以下程序填空,建立该二叉树的二叉链式存储结构,并输出该二叉树的先序遍历、中序遍历和后序遍历结果输…...
基于蜣螂算法改进的LSTM分类算法-附代码
基于蜣螂算法改进的LSTM分类算法 文章目录基于蜣螂算法改进的LSTM分类算法1.数据集2.LSTM模型3.基于蜣螂算法优化的RF4.测试结果5.Matlab代码摘要:为了提高LSTM数据的分类预测准确率,对LSTM中的参数利用蜣螂搜索算法进行优化。1.数据集 数据的来源是 UC…...
如何正确应用GNU GPLv3 和 LGPLv3 协议
文章目录前言GNU GPLv3.0Permissions(许可)Conditions(条件)Limitations(限制)GNU LGPLv3.0应用GPLv3.0应用LGPLv3.0建议的内容:添加文件头声明附录GNU GPLv3.0原文GNU LGPLv3.0 原文前言 对于了解开源的朋友们,GNU GPL系列协议可谓是老朋友了。原来我基…...
Python局部函数及用法(包含nonlocal关键字)
Python 函数内部可以定义变量,这样就产生了局部变量,可能有人会问,Python 函数内部能定义函数吗?答案是肯定的。Python 支持在函数内部定义函数,此类函数又称为局部函数。 那么,局部函数有哪些特征&#x…...
关于BMS的介绍及应用领域
电池管理系统(Battery Management System,BMS)是一种集成电路系统,它用于监测和控制电池系统状态,以确保电池的正常运行和安全使用。BMS的应用涵盖了电动汽车、储能系统、无人机、电动工具等各个领域,可以提…...
2月datawhale组队学习:大数据
文章目录一、大数据概述二、 Hadoop2.1 Hadoop概述2.2 su:Authentication failure2.3 使用sudo命令报错xxx is not in the sudoers file. This incident will be reported.2.4 创建用户datawhale,安装java8:2.5 安装单机版Hadoop2.5.1 安装Hadoop2.5.2 修…...
在Spring框架中创建Bean实例的几种方法
我们希望Spring框架帮忙管理Bean实例,以便得到框架所带来的种种功能,例如依赖注入等。将一个类纳入Spring容器管理的方式有几种,它们可以解决在不同场景下创建实例的需求。 XML配置文件声明 <?xml version"1.0" encoding"…...
PyQt5 界面预览工具
简介 一款为了预览PyQt5设计的UI界面而开发的工具,使用时需要结合PyCharm同时使用。 下载 PyQt5界面预览工具 参数说明 使用配置 启动PyCharm,找到File -> Settings,打开 找到Tools -> External Tools点击打开,在新界面…...
做图素材网站哪个好/怎么样才可以在百度上打广告
0 Homebrew简介linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有yum,Ubuntu有apt-get而用mac os有一个类似的工具名为Homebrew,Homebrew简称brew,是Mac OSX上…...
增城网站建设怎么选择/北京外包seo公司
Email:Louisa_wanguniland.net.cn MSN:louisa.wanglive.cn 待遇:面谈 12个月BASE,4-6个月奖金,2-3年后有股票分红 工作地点:杭州 职位基本要求: 学士学位及以上学历,重点院校优先;通信工程/应用…...
如何用dw做网站地图/怎样淘宝seo排名优化
沙市热点浸锌网格板厂家A一、密型钢格板简介:I型钢格板由I型扁钢(扁钢两边厚中间薄)和麻花钢(也叫扭绞方钢, 一般有5x5 6x6 8x8 的方钢,扭成的钢筋)进行交叉排列,并且焊接成中间带有方形格子的一种钢铁制品。二、密型钢格板的用途…...
上海专业网站建设网站/网络推广的方式和途径有哪些
c语言并未定义任何的输入输出(IO)语句,取而代之,包含了一个全面的标准库(standard library)来提供IO机制。 本书中的很多示例都使用了iostream库。iostream库包含两个基本类型 istream 和 ostreamÿ…...
建行app官方下载/网站seo好学吗
CWinApp* acedGetAcadWinApp()返回指向AutoCAD应用程序类实例的指针 CDocument* acedGetAcadDoc()返回指向AutoCAD文件类实例的指针 CView* acedGetAcadDwgView()返回指向视图类的指针(AutoCAD的绘图区) CMDIFrameWnd* acedGetAcadFrame()返回一个多文…...
如何建立一个公网可以访问的网站/2022年热点营销案例
首先下载安装git:https://git-scm.com/downloads/ 一路默认,安装完成后,打开文件夹C:\Users\Administrator\.ssh(Administrator是当前用户名),在空白处点鼠标右键选择“Git Bush Here” ,打开g…...