首页 > 系统相关 >虚拟机搭建区块链(Ubuntu系统)

虚拟机搭建区块链(Ubuntu系统)

时间:2024-08-12 22:16:40浏览次数:12  
标签:console fisco 虚拟机 Ubuntu sh bcos java nodes 区块

虚拟机搭建区块链

搭建区块链网络

搭建单群组联盟链

第一步安装依赖
sudo apt install -y openssl curl
第二步. 创建操作目录, 下载安装脚本
## 创建操作目录
cd ~ && mkdir -p fisco && cd fisco

## 下载脚本
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/build_chain.sh && chmod u+x build_chain.sh
第三步. 搭建单群组4节点联盟链
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
  1. 其中4指的是一条4节点的FISCO链。

  2. 其中-p选项指定起始端口

  3. channel_listen_ip参考配置是 0.0.0.0

    搭建成功在最后一行会显示

    [INFO] All completed. Files in /home/yue/fisco/nodes
    
第四步. 启动FISCO BCOS链
bash nodes/127.0.0.1/start_all.sh

启动所有节点

第五步. 检查进程
ps -ef | grep -v grep | grep fisco-bcos

检查进程是否启动,可能不用

正常的话:cd

fisco       5453     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
fisco       5459     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
fisco       5464     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node2/../fisco-bcos -c config.ini
fisco       5476     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node3/../fisco-bcos -c config.ini

其中fisco不一定非这个

如果进程数不为4,则进程没有启动(一般是端口被占用导致的)

第六步. 检查日志输出
tail -f nodes/127.0.0.1/node0/log/log*  | grep connected

执行下面指令,检查是否在共识

tail -f nodes/127.0.0.1/node0/log/log*  | grep +++

正常情况会不停输出带有++++Generating seal的日志,即表示共识正常。

配置及使用控制台

操作前先输入exit退出当前fisco的文件夹,不然无法获取控制台,以及sol文件

第一步. 准备依赖车票-
# ubuntu系统安装java
sudo apt install -y default-jdk

获取控制台并回到fisco目录,要用那个目录就输入那个目录

cd ~/fisco &&  cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh

二选一(配置脚本)

curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh

若节点未采用默认端口,请将文件中的20200替换成节点对应的channel端口。

# 最新版本控制台使用如下命令拷贝配置文件
cp -n console/conf/config-example.toml console/conf/config.toml

配置控制台证书

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

127.0.0.1文件地址:主文件夹/fisco/nodes

如果按照步骤来的话。

第二步. 启动并使用控制台
cd ~/fisco/console && bash start.sh

其中fisco是用开存放区块链网络的文件夹可以改名,之后会出现一个

[group:1]>的书名号后可以操作

# 获取客户端版本
[group:1]> getNodeVersion
# 获取节点信息
[group:1]> getPeers

如果想要运行部署合约就别退出去

# 在控制台输入以下指令 部署成功则返回合约地址
[group:1]> deploy HelloWorld

部署成功则返回合约地址

之后

# 查看当前块高
[group:1]> getBlockNumber

此时回车应该会显示一个1

调用set设置name

call HelloWorld 显示的合约地址 set "Hello, FISCO BCOS"

引号内的内容可更改,用于下面部署时可以显示部署成功与否

运行完后输入

getBlockNumber

此时运行完会显示个2

# 调用get接口获取name变量,检查设置是否生效
[group:1]> call HelloWorld 合约地址 get

部署完可以

之后退出

[group:1]> quit

对于solidiy文件路径,默认:

主文件夹/fisco/console/contracts/solidity文件夹下存放

开发区块链应用

编辑部署合约

首先确保已经导入控制台,如果没有则先导入

# 创建工作目录~/fisco
mkdir -p ~/fisco
# 下载控制台
cd ~/fisco && curl -#LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh

确保路径,或者自行对fisco文件夹重命名。

编写智能合约先切换到相应的目录中,文件路径前的那个~不可省略

cd ~/fisco/console/contracts/solidity

不同于Linux的vim在ubuntu系统中建立并编辑文件使用的是vi

vi Asset.sol

本次以Asset来命名sol后缀的文件。保存退出同Linux都是

"ctrl+c"然后“:wq”保存退出

之后退出当前目录,切换目录

cd ~/fisco/console/

在当前目录下输入,确保控制台版本大于等于2.8.0。

bash sol2java.sh -p org.fisco.bcos.asset.contract

小于时:

./sol2java.sh org.fisco.bcos.asset.contract

运行成功之后,将会在console/contracts/sdk目录生成java、abi和bin目录

运行成功后生成的目录

会在该目录下同步生成solidity目录下sol文件的java

/home/yue/fisco/console/contracts/sdk/java/org/fisco/bcos/asset/contract

在另外两个与Java文件同级的文件夹下的sm文件夹里会自动生成相应的后缀文件

其中Asset.java是Java应用调用Asset.sol合约需要的文件

之后安装jdk,社区版足以。 |

源码获取示例(不一定):

 cd ~/fisco
 curl -#LO https://github.com/FISCO-BCOS/LargeFiles/raw/master/tools/asset-app.tar.gz
# 解压得到Java工程项目asset-app
 tar -zxf asset-app.tar.gz
建立idea项目

安装好之后,创建文件,推荐建立在Documents文件夹下,之后建立文件,将Gradle改为Maven,建立springboot项目。

配置

随后在build.gradle文件夹下(没有就自己建立)

//对FISCO BCOS Java SDK的引用
repositories {
    mavenCentral()
    maven {
        allowInsecureProtocol = true
        url "http://maven.aliyun.com/nexus/content/groups/public/"
    }
    maven {
        allowInsecureProtocol = true
        url "https://oss.sonatype.org/content/repositories/snapshots" 
    }
}

在红圈处导入相关文件,之后再在同一大括号内导入

//引入Java SDK jar包
dependencies { //在该括号内导入
     compile ('org.fisco-bcos.java-sdk:fisco-bcos-java-sdk:2.9.1') //截图红圈内容
    testImplementation group: 'junit', name: 'junit', version: '4.12'
    implementation ('org.fisco-bcos.java-sdk:fisco-bcos-java-sdk:2.9.1')
}
配置SDK证书
def spring_version = "4.3.27.RELEASE"
List spring = [
        "org.springframework:spring-core:$spring_version",
        "org.springframework:spring-beans:$spring_version",
        "org.springframework:spring-context:$spring_version",
        "org.springframework:spring-tx:$spring_version",
]

dependencies {
    testImplementation group: 'junit', name: 'junit', version: '4.12'
    implementation ("org.fisco-bcos.java-sdk:fisco-bcos-java-sdk:2.9.1")
    implementation spring
}
将SDK证书存放入指定位置

打开IDEA并打开IDEA的终端,输入

# 假设我们将asset-app放在~/fisco目录下 进入~/fisco目录
$ cd ~/fisco
# 创建放置证书的文件夹
$ mkdir -p asset-app/src/test/resources/conf
# 拷贝节点证书到项目的资源目录
$ cp -r nodes/127.0.0.1/sdk/* asset-app/src/test/resources/conf
# 若在IDE直接运行,拷贝证书到resources路径
$ mkdir -p asset-app/src/main/resources/conf
$ cp -r nodes/127.0.0.1/sdk/* asset-app/src/main/resources/conf

将编译好的Java合约引入项目中

输入如下代码

cd ~/fisco  
# 将编译好的合约Java类引入项目中。
cp console/contracts/sdk/java/org/fisco/bcos/asset/contract/Asset.java Java文件目录,从开始到具体文件

保证文件存在

如果提前进入fisco文件则可以免去第一步,同样是在IDEA中的终端中输入

标签:console,fisco,虚拟机,Ubuntu,sh,bcos,java,nodes,区块
From: https://www.cnblogs.com/hunshuideyunxue/p/18355841

相关文章

  • Ubuntu卸载软件
    Ubuntu使用过程中,常常会遇到内存不够用的情况,除了清理数据,也想要卸载一些软件包以尽量释放空间。1.卸载通过apt-get命令安装的软件包apt-get,APT(AdvancedPackagingTool)包处理实用程序,一个命令行接口。用于从经过身份验证的源中检索软件包和相关软件包的信息,以及安装、升级......
  • 阿布吞的基础使用——Ubuntu
    Ubuntu是Linux系统的发行版,Linux操作系统中比较流行的一个版本,广泛用于个人电脑、服务器和嵌入式设备。今天来简单讲解一下Ubuntu的基础使用。1. 桌面环境登录:安装完成后,启动计算机,输入用户名和密码登录到Ubuntu桌面环境。桌面界面:Ubuntu使用GNOME桌面环境,界面简洁易......
  • 虚拟机中创建Windows-详细步骤
    创建虚拟机1.创建新的虚拟机2.选择【自定义】新建,在点击【下一步】3.默认设置,点击【下一步】4.选择稍后安装操作系统,点击【下一步】5.根据需求选择版本,在点击【下一步】6.默认位置在C盘,建议更换位置,再点击【下一步】7.默认UEFI不变,点击【下一步】8.选择......
  • Ubuntu基础入门指南
    简介        Ubuntu是一个基于Debian的Linux发行版,以其易用性和强大的社区支持而闻名。无论你是初学者还是有经验的用户,Ubuntu都能提供丰富的功能和友好的用户体验。本博客将带你了解Ubuntu的基础知识,帮助你快速入门。安装Ubuntu        安装Ubuntu相对简......
  • 虚拟机网络设置 与dhcp 获取ip
     在宿主机(例如Linux服务器)中运行虚拟机时,虚拟机通常通过DHCP服务器获取IP地址。以下是如何配置和排查虚拟机DHCP获取IP的过程:1.检查虚拟机的网络配置虚拟机的网络配置类型通常有以下几种:NAT(NetworkAddressTranslation):虚拟机通过宿主机的IP地址访问外部......
  • 【Linux学习】Ubuntu配置
    1、如何在Ubuntu18.04上面安装VMware-tools实现屏幕适配,以及文件拖拽、复制、粘贴功能先设置以下:此处一定要设置路径保证客户机隔离选项两个勾选将主机桌面文件夹设置为共享 点击VMware顶部菜单,“虚拟机”>“安装VMwareTools”,桌面会出现光盘图标“VMwareTools”......
  • 区块链与比特币简述
    比特币:一种电子货币基于密码学于2008年左右被中本聪所创建推行人民对银行等金融机构失去信心政府不再可信中本聪认为不需要一个集中化中心化的记账系统比特币的创建是为了创建一个去中心化的交易系统简单的说比特币是想要创建一个不被单一机构或人员约束的记账系统该......
  • ubuntu网卡驱动修复
    问题引起更换显卡驱动时频繁重启,突然发现右上角没有网络图标了。尝试法1网络上查到的大多与NetworkManager相关。sudoserviceNetworkManagerstopsudorm/var/lib/NetworkManager/NetworkManager.statesudogedit/etc/NetworkManager/NetworkManager.conf这一步将打......
  • ubuntu 22.04 安装 docker(服务器从毛胚到精装)
    1、用户操作阿里云默认是root用户,我们一般要自己创建一个用户,然后给该用户sudo权限添加用户sudoaddusernewUserName赋予sudo权限sudousermod-aGsudonewUserName删除用户sudodeluser--remove-home--remove-all-filesnewUserName切换用户sudosu-newUse......
  • 研究C++20语法----在ubuntu中安装gcc13和g++13
    前言由于要学习一点C++20的知识点,故需要安装gcc13和g++13Ubuntu默认不能直接下载gcc13和g++13,但是只有g++13和gcc13支持C++20的语法,故想要学习C++20,就必须借助第三方工具下载。默认安装目录:/usr/bin本机安装环境:ubuntu22.4文章目录1、安装build_essential2、添加ppa......