当前位置: 首页 > article >正文

使用web3工具结合fiscobcos网络部署调用智能合约

借助 web3 工具,在 FISCO BCOS 网络上高效部署与调用智能合约,解锁区块链开发新体验。

搭建的区块链网络需要是最新的fiscobcos3.0,最新的才支持web3调用

现在分享踩坑经验,希望大家点赞

目录

1.搭建fiscobcos节点(3.0Air版本)

2.修改网络配置使外部能够连接web3网络

 

3.搭建控制台console

ubuntu下载配置java

下载配置console

4.启动并使用控制台

5.链接metamask并在remix里编译部署一个智能合约

6.编译部署合约:


1.搭建fiscobcos节点(3.0Air版本)

安装ubuntu依赖

sudo apt install -y curl openssl wget

创建操作目录,下载建链脚本

# 创建操作目录
cd ~ && mkdir -p fisco && cd fiscocurl -#LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/releases/download/v3.11.0/build_chain.sh && chmod u+x build_chain.sh

首先需要在github下载fisco-bcos二进制文件,然后传到fisco文件夹下面,然后尝试执行:

bash build_chain.sh -l127.0.0.1:4 -p30300,20200 -e ./fisco-bcos

 这个时候你会发现因为github原因还是拉取不下来

解决:

打开host文件: sudo gedit /etc/hosts,然后输入#github
140.82.114.4 github.com
151.101.1.6 github.global.ssl.fastly.net
151.101.65.6 github.global.ssl.fastly.net
151.101.129.6 github.global.ssl.fastly.net
151.101.193.6 github.global.ssl.fastly.net

#保存退出并重启服务
 

sudo systemctl restart NetworkManager

 重新执行搭建区块链网络

bash build_chain.sh -l127.0.0.1:4 -p30300,20200 -e ./fisco-bcos

image-20250522113147503

2.修改网络配置使外部能够连接web3网络
[web3_rpc]enable=false  //将false改为truelisten_ip=0.0.0.0listen_port=8545thread_count=8

在节点0的相关配置下面

image-20250522113518693

image-20250522113631865

 启动节点

image-20250522113341029

检查是否启动

ps -ef | grep -v grep | grep fisco-bcos
3.搭建控制台console

fiscobcos可以通过控制台设置账户金额

ubuntu下载配置java

首先需要下载java14(这个是官方推荐,我试了也没问题)

下载地址:Java Archive Downloads - Java SE 14 | Oracle Singapore

下载的时候需要登录,这里附上一个 oracle 账号密码:

账号:`83926039@qq.com`
密码:`Oracle0.`

创建安装目录:

sudo mkdir -p /usr/lib/jvm/

把下载的文件拖进fisco目录下然后解压缩:

sudo tar -xvzf jdk-14.0.2_linux-x64_bin.tar.gz -C /usr/lib/jvm/

将 JAVA_HOME 添加到环境变量中:

sudo gedit /etc/profile

添加以下内容:

export JAVA_HOME=/usr/lib/jvm/jdk-14.0.2
export PATH=$JAVA_HOME/bin:$PATH

保存并退出后,运行以下命令使更改生效:

source /etc/profile

查看java是否成功

下载配置console
​
curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master/tools/download_console.sh && bash download_console.sh​

拷贝控制台配置文件

cp -n console/conf/config-example.toml console/conf/config.toml

配置控制台证书

控制台与节点之间默认开启 SSL 连接,控制台需要配置证书才可连接节点。开发建链脚本在生成节点的同时,生成了 SDK 证书,可直接拷贝生成的证书供控制台使用:

cp -r nodes/127.0.0.1/sdk/* console/conf

4.启动并使用控制台

cd ~/fisco/console && bash start.sh

启动完控制台后,可以选择把余额功能打开:

# 开启总体功能
setSystemConfigByKey feature_balance 1
# 开启Balance预编译功能
setSystemConfigByKey feature_balance_precompiled 1

 

查看admin账户,记住当前账号的私钥。等会导入小狐狸钱包的时候有用

bash get_account.sh -k ../nodes/ca/accounts/0x43d3b352c673d8729a238e3606c118ef232b63d9.pem

image-20250522124103476

为了能在控制台使用治理委员的功能,所以我们需要把账户私钥对放在 ~/fisco/console/account/ecdsa/ 目录下。

sudo cp -r ../nodes/ca/accounts/0x43d3b352c673d8729a238e3606c118ef232b63d9.pem account/ecdsa/

修改私钥文件的权限:

sudo chmod 777 0x43d3b352c673d8729a238e3606c118ef232b63d9.pem

重新进入控制台,输入命令,查看文件中可用的地址:

listAccount

切换账号成 admin :

[group0]: /apps> loadAccount 0x43d3b352c673d8729a238e3606c118ef232b63d9
Load account 0x43d3b352c673d8729a238e3606c118ef232b63d9 success!

试试管理员才能使用的增加余额:

查看余额

5.链接metamask并在remix里编译部署一个智能合约

metamask如何使用,网上有很多详细的介绍,在这里不在具体讲解

配置网络(ip要替换为你的虚拟机ip)

我这里添加了两个账户,均可以正常显示

6.编译部署合约:

每次执行合约操作时会调出小狐狸钱包进行交换,点击确认。

部署成功!调用其他功能也是可以的。

7.调用合约可能出现的报错

If the transaction failed for not having enough gas, try increasing the gas limit gently.

解决:选中Custom,增大Gas限制

附上我测试使用的合约

// SPDX-License-Identifier: MIT
pragma solidity ^0.6.10;
pragma experimental ABIEncoderV2;
contract CarRentalContract {// 定义租赁记录结构体struct RentalRecord {string userId;string carId;string createTime;string type1;}mapping(string => RentalRecord) public carIdToRentalRecord;event RentalRecordAdded(string indexed carId,string userId,string createTime,string type1);// 添加租赁记录的函数function addRentalRecord(string memory _userId,string memory _carId,string memory _createTime,string memory _type) public {RentalRecord memory newRecord = RentalRecord({userId: _userId,carId: _carId,createTime: _createTime,type1: _type});carIdToRentalRecord[_carId] = newRecord;emit RentalRecordAdded(_carId, _userId, _createTime, _type);}// 查询租赁记录的函数function getRentalRecord(string memory _carId)publicviewreturns (string memory userId,string memory carId,string memory createTime,string memory type1){require(bytes(carIdToRentalRecord[_carId].carId).length != 0,"Car ID does not exist");RentalRecord storage record = carIdToRentalRecord[_carId];return (record.userId, record.carId, record.createTime, record.type1);}
}

如果大家还是下载不下来,私聊我给你安装包文件!

都看到这里了,还不快点赞!

相关文章:

使用web3工具结合fiscobcos网络部署调用智能合约

借助 web3 工具,在 FISCO BCOS 网络上高效部署与调用智能合约,解锁区块链开发新体验。 搭建的区块链网络需要是最新的fiscobcos3.0,最新的才支持web3调用 现在分享踩坑经验,希望大家点赞 目录 1.搭建fiscobcos节点(3.…...

Oracle/openGauss中,DATE/TIMESTAMP与数字日期/字符日期比较

ORACLE 运行环境 openGauss 运行环境 0、前置知识 ORACLE:DUMP()函数用于返回指定表达式的数据类型、字节长度及内部存储表示的详细信息 SELECT DUMP(123) FROM DUAL; -- Typ2 Len3: 194,2,24 SELECT DUMP(123) FROM DUAL;-- Typ96 Len3: 49,50,51 -- ASCII值&am…...

Datatable和实体集合互转

1.使用已废弃的 JavaScriptSerializer,且反序列化为弱类型 ArrayList。可用但不推荐。 using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Web; using Sy…...

Win11切换JDK版本批处理脚本

维护的老项目jdk1.8,新项目开发采用jdk21,所以寻找类似nvm的软件,都不太满意,最后还是决定采用写一个脚本算了,先不折腾了。 1、创建switch_jdk.bat文件 2、把如下内容复制进行 echo off chcp 65001 >nul setloc…...

爬虫学习-Scrape Center spa6 超简单 JS 逆向

关卡 spa6 电影数据网站,无反爬,数据通过 Ajax 加载,数据接口参数加密且有时间限制,适合动态页面渲染爬取或 JavaScript 逆向分析。 首先抓包发现get请求的参数token有加密。 offset表示翻页,limit表示每一页有多少…...

对数的运算困惑

难点总结 学生在对数运算中的难点分析: 一、不理解对数,不会用对数公式或错用对数公式 ①对数 l o g 2 3 log_23 log2​3和指数幂 2 3 2^3 23一样,也就是个实数而已,所以其也会有加减乘除乘方开方等运算; 比如 2 2 + l o g 2 3 = 2 2 ⋅ 2 l o g 2 3 = 4 ⋅ 3 = 12 2^{2…...

C++ 图像处理库 CxImage 简介 (迁移至OpenCV)

文章目录 核心功能特点局限性与替代方案常用方法构造函数从数组创建图像访问属性访问像素点Windows平台支持 常用方法迁移至OpenCV CxImage 是一款功能强大的图像处理类库,主要用于 Windows 平台的图像处理任务。它支持多种图像格式的加载、保存、编辑及特效处理&am…...

linux系统与shell 笔记

Linux 系统 Linux 是一种开源的操作系统内核,基于 Unix 设计,具有多用户、多任务、高稳定性和安全性的特点。它广泛应用于服务器、嵌入式设备和个人计算机领域。Linux 系统的核心组件包括内核、系统库、工具链和用户界面(如命令行或图形界面…...

尚硅谷redis7 86 redis集群分片之3主3从集群搭建

86 redis集群分片之3主集群搭建 3主3从redis集群配置 找3台真实虚拟机,各自新建 mķdir -p /myredis/cluster 新建6个独立的redis实例服务 IP:192.168.111.175端口6381/端口6382 vim /myredis/cluster/redisCluster6381.conf bind 0.0.0.0 daemonize yes protected-mode no …...

Kaggle-Predict Calorie Expenditure-(回归+xgb+cat+lgb+模型融合+预测结果)

Predict Calorie Expenditure 题意: 给出每个人的基本信息,预测运动后的卡路里消耗值。 数据处理: 1.构造出人体机能、运动相关的特征值。 2.所有特征值进行从新组合,注意唯独爆炸 3.对连续信息分箱变成离散 建立模型&#x…...

【解决办法】Git报错error: src refspec main does not match any.

在命令行中使用 Git 进行 git push -u origin main 操作时遇到报错error: src refspec main does not match any。另一个错误信息是:error: failed to push some refs to https://github.com/xxx/xxx.git.这是在一个新设备操作时遇到的问题,之前没有注意…...

React与Vue的内置指令对比

React 与 Vue 在内置指令的设计理念和实现方式上有显著差异。Vue 提供了一套丰富的模板指令系统,而 React 更倾向于通过原生 JavaScript 语法和 JSX 实现类似功能。以下是两者的核心对比: 一、条件渲染 Vue 使用 “v-if”/ “v-else” 指令,…...

2025年5月24号高项综合知识真题以及答案解析(第1批次)

2025年5月24号高项综合知识真题以及答案解析...

【NATURE氮化镓】GaN超晶格多沟道场效应晶体管的“闩锁效应”

2025年X月X日,布里斯托大学的Akhil S. Kumar等人在《Nature Electronics》期刊发表了题为《Gallium nitride multichannel devices with latch-induced sub-60-mV-per-decade subthreshold slopes for radiofrequency applications》的文章,基于AlGaN/GaN超晶格多通道场效应晶…...

Ubuntu24.04换源方法(新版源更换方式,包含Arm64)

一、源文件位置 Ubuntu24.04的源地址配置文件发生改变,不再使用以前的sources.list文件,升级24.04之后,而是使用如下文件 /etc/apt/sources.list.d/ubuntu.sources二、开始换源 1. 备份源配置文件 sudo cp /etc/apt/sources.list.d/ubunt…...

26 C 语言函数深度解析:定义与调用、返回值要点、参数机制(值传递)、原型声明、文档注释

1 函数基础概念 1.1 引入函数的必要性 在《街霸》这类游戏中,实现出拳、出脚、跳跃等动作,每项通常需编写 50 - 80 行代码。若每次调用都重复编写这些代码,程序会变得臃肿不堪,代码可读性与维护性也会大打折扣。 为解决这一问题&…...

彻底理解一个知识点的具体步骤

文章目录 前言一、了解概念(是什么)二、理解原理(为什么)三、掌握方法(怎么用) 四、动手实践(会用)五、类比拓展(迁移能力)六、总结归纳(融会贯通…...

FFmpeg 时间戳回绕处理:保障流媒体时间连续性的核心机制

FFmpeg 时间戳回绕处理:保障流媒体时间连续性的核心机制 一、回绕处理函数 /** * Wrap a given time stamp, if there is an indication for an overflow * * param st stream // 传入一个指向AVStream结构体的指针,代表流信息 * pa…...

yolov8改进模型

YOLOv8 作为当前 YOLO 系列的最新版本,已经具备出色的性能。若要进一步改进,可以从网络架构优化、训练策略增强、多任务扩展和部署效率提升四个方向入手。以下是具体改进思路和实现示例: 1. 网络架构优化 (1) 骨干网络增强 引入 Transform…...

PostgreSQL日常运维

目录 一、PostgreSQL基础操作 1.1 登录数据库 1.2 数据库管理 1.3 数据表操作 二、数据备份与恢复 2.1 备份工具pg_dump 2.2 恢复工具pg_restore与psql 2.3 备份策略建议 三、模式(Schema) 3.1 模式的核心作用 3.2 模式操作全流程 四、远程连…...

<< C程序设计语言第2版 >> 练习 1-23 删除C语言程序中所有的注释语句

1. 前言 本篇文章介绍的是实现删除C语言源文件中所有注释的功能.希望可以给C语言初学者一点参考.代码测试并不充分, 所以肯定还有bug, 有兴趣的同学可以改进. 原题目是: 练习1-23 编写一个删除C语言程序中所有的注释语句. 要正确处理带引号的字符串与字符常量. 在C语言中, 注释…...

Fluence (FLT) 2026愿景:RWA代币化加速布局AI算力市场

2025年5月29日,苏黎世 - Fluence,企业级去中心化计算平台,荣幸地揭开其2026愿景的面纱,并宣布将于6月1日起启动四大新举措。 Fluence 成功建立、推出并商业化了其去中心化物理基础设施计算网络(DePIN)&…...

如何撰写一篇优质 Python 相关的技术文档 进阶指南

💝💝💝在 Python 项目开发与协作过程中,技术文档如同与团队沟通的桥梁,能极大提高工作效率。但想要打造一份真正实用且高质量的 Python 技术文档类教程,并非易事,需要在各个环节深入思考与精心打…...

选择if day5

5.scanf(“空白符”) 空白符作用表示匹配任意多个空白符 进入了内存缓冲区(本质就是一块内存空间) 6.scanf读取问题: a.遇到非法字符读取结束 2. %*d * 可以跳过一个字符 eg:%d%*d%d 读取第一和第三个字符…...

MiniMax V-Triune让强化学习(RL)既擅长推理也精通视觉感知

MiniMax 近日在github上分享了技术研究成果——V-Triune,这次MiniMax V-Triune的发布既是AI视觉技术也是应用工程上的一次“突围”,让强化学习(RL)既擅长推理也精通视觉感知,其实缓解了传统视觉RL“鱼和熊掌不可兼得”…...

Hash 的工程优势: port range 匹配

昨天和朋友聊到 “如何匹配一个 port range”,觉得挺有意思,简单写篇散文。 回想起十多年前,我移植并优化了 nf-HiPAC,当时还看不上 ipset hash,后来大约七八年前,我又舔 nftables,因为用它可直…...

同为.net/C#的跨平台运行时的mono和.net Core有什么区别?

Mono 和 .NET Core(现已统一为 .NET)都是 .NET 生态的跨平台实现,但它们在设计目标、技术特性和应用场景上有显著区别。以下是详细对比: ​​1. 历史背景​​ ​​项目​​​​诞生时间​​​​开发者​​​​当前状态​​​​Mo…...

前端安全直传MinIO方案

目的:前端直接上传文件到Minio,不通过服务器中转文件。密钥不能在前端明文传输。 ## 一、架构设计 mermaid sequenceDiagram 前端->>后端: 1.请求上传凭证 后端->>MinIO: 2.生成预签名URL 后端-->>前端: 3.返回预签名URL 前端->…...

HackMyVM-Dejavu

信息搜集 主机发现 ┌──(root㉿kali)-[~] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:39:60:4c, IPv4: 192.168.43.126 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.43.1 c6:45:66:05:91:88 …...

LeetCode Hot100(动态规划)

70. 爬楼梯 题目: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 题解: 不难发现,每一次都是从i-1或者i-2爬上来的,我们加起来求和即可 class So…...