使用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 布局。 根据实际情况选择适合的方法,需要注意兼容性和语义性问题。在移动…...
AI报告文档审核护航飞行安全:IACheck打造航电与飞控检测报告智能审核新利器
在航空领域,航电系统与飞控系统被誉为飞行器的“大脑”和“神经中枢”。航电系统负责信息处理与通信导航,飞控系统则负责飞行姿态控制与稳定执行。两者协同运行,直接关系到飞行安全与任务成败。在如此高安全要求的领域中,任何细微…...
SpringBoot3+React18实战:手把手教你用PlayEdu搭建企业培训系统(附避坑指南)
SpringBoot3React18实战:手把手构建企业级培训平台PlayEdu 最近两年企业数字化学习需求激增,但市面SaaS产品要么功能冗余要么价格高昂。作为技术负责人,我在评估多个方案后选择了PlayEdu——这款基于SpringBoot3和React18的开源系统ÿ…...
不只是复现:用SwinIR和DIV2K数据集训练自己的图像超分辨率模型
从零构建:基于SwinIR与DIV2K的定制化超分辨率训练实战 当你在社交媒体上看到一张模糊的老照片时,是否想过用AI技术让它重获新生?图像超分辨率技术正从实验室走向大众视野,而SwinIR作为该领域的新星,以其独特的Transfor…...
Linux磁盘调度算法终极指南:如何选择最佳IO性能优化方案
Linux磁盘调度算法终极指南:如何选择最佳IO性能优化方案 【免费下载链接】linux-tutorial :penguin: Linux教程,主要内容:Linux 命令、Linux 系统运维、软件运维、精选常用Shell脚本 项目地址: https://gitcode.com/GitHub_Trending/lin/li…...
AI歌声转换技术全解析:从原理到商业落地的实践指南
AI歌声转换技术全解析:从原理到商业落地的实践指南 【免费下载链接】so-vits-svc 基于vits与softvc的歌声音色转换模型 项目地址: https://gitcode.com/gh_mirrors/sovit/so-vits-svc AI歌声转换技术正在重塑音乐创作与声音处理的边界,通过深度学…...
一秒预警・守护平安|腾视科技DS02 DMS疲劳驾驶预警仪,AI守护每一段旅途
行车千万里,安全第一位。在长途货运、网约车、公交、特种车辆、船舶驾驶及各类值守岗位,疲劳驾驶、分心驾驶已成为安全事故的主要诱因。腾视科技依托AI算力与视觉算法核心优势,重磅推出DS02 DMS疲劳驾驶预警仪,以高精度AI算法、智…...
3大核心突破:M5Stack-Core-S3让AI语音助手开发效率提升10倍
3大核心突破:M5Stack-Core-S3让AI语音助手开发效率提升10倍 【免费下载链接】xiaozhi-esp32 Build your own AI friend 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 如何用模块化架构解决嵌入式开发的3大痛点 嵌入式开发常常陷入&quo…...
高效、易用、可持续的知识库
快速搭建高效、易用、可持续的知识库,核心是先定骨架、再填核心、轻量落地、持续迭代,避免陷入 “大而全却难用” 的陷阱。以下是分步骤、可落地的实操方案,兼顾快速搭建和长期高效两大需求,适配小团队、企业级等不同场景…...
AnimateDiff文生视频应用场景:电商动态海报、社交媒体GIF制作实战
AnimateDiff文生视频应用场景:电商动态海报、社交媒体GIF制作实战 1. 为什么选择AnimateDiff制作动态内容 在当今内容爆炸的时代,静态图片已经很难抓住用户的注意力。数据显示,社交媒体上动态内容的点击率比静态内容高出40%,而电…...
YOLOv8改进:引入BiFormer双层路由注意力机制,让目标检测更高效更精准
摘要 在目标检测领域,YOLOv8凭借其卓越的速度与精度平衡,已成为工业界和学术界的首选模型之一。然而,传统注意力机制在处理高分辨率特征图时,往往面临计算复杂度高、内存占用大的问题。本文提出将BiFormer(Bilateral Transformer)中的双层路由注意力机制引入YOLOv8架构,…...
