首页 > 其他分享 >在openEuler RISC-V上无痛部署Solidity

在openEuler RISC-V上无痛部署Solidity

时间:2024-12-24 20:09:31浏览次数:11  
标签:git Solidity RISC 编译 openEuler message

  近几年区块链很火,随着各国政府对加密技术的监管政策不断变化和BTC的暴涨,越来越多人对这项去中心化的技术充满着期待。这次我用openEuler 24.09 RISC-V的远程机器尝试编译了Solidity项目,发现过程比较顺畅,于是记录下来,后面有机会我也多多探讨区块链在RISC-V的可能性。

 

git clone git@github.com:ethereum/solidity.git

  先是把Solidity的源码项目克隆了下来,由于项目比较庞大,用https拉的过程中总是会出现错误,我改成了ssh,第一步done!

 

  由于项目里面包含了好几个submodule,我在拉取submodule的过程中也失败了,然后尝试手动克隆(方法同上)后成功。

  这是.gitmodules文件,里面包含了需要拉取的子模块,同时"deps/xxx"就是项目所存放的目录,只需要手动将项目拉到"deps"目录就行。

 

  接下来就是编译,不过也遇到了编译失败的问题,编译命令比较简单,参照文档如下:

mkdir build
cd build
cmake .. && make

  很明显这是一个跟浮点数转换有关的编译错误,面对这种情况,只需要在Cmake里面加上一个选项。

cmake -DCMAKE_CXX_FLAGS="-Werror=float-conversion" ..

  Done!

  编译就暂时先跳过了,试试写一个Solidity的demo。

 

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract HelloWorld {
    string private message;

    constructor() {
        message = "Hello, World!";
    }

    function getMessage() public view returns (string memory) {
        return message;
    }
}

  运行./solc --bin --abi xxx.sol

  这将输出合约的abi和字节码。Done!

  

  平安夜快乐!

标签:git,Solidity,RISC,编译,openEuler,message
From: https://www.cnblogs.com/ChebyshevTST/p/18628633

相关文章

  • Solidity知识扫盲
    1.private和public区别?private:只能在合约内部访问,有助于保护合约的内部逻辑和数据public:内外部都可以访问调用2.枚举:表示具有固定取值范围的变量定义:enumColor{Red,Green,Blue}使用:ColormyColor=Color.Red3.常用修饰符public:公有private:私有view/constant:函......
  • openEuler 22.03 安装 .NET 8.0
    //查看内核信息1、cat/proc/version2、查看主机信息  hostnamectl3、openEuler 安装 rpm 源sudorpm-Uvhhttps://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm查看 dotnet 相关包信息sudodnfinfoaspnetcore-runtime-8.04、安装 ......
  • 【openeuler常用服务管理】- Nginx
    openEuler部署Nginx文章目录openEuler部署Nginx前言一、Nginx关键特性二、Nginx的运行架构三、安装nginx四、配置静态资源总结前言本文主要介绍Nginx的一些关键特性以及运行架构以及使用openEuler运行nginx的是实践。一、Nginx关键特性支持高并发......
  • Solidity极简应用
    01.ERC20目标:发行自己的测试代币;ERC20是什么?ERC20是以太坊上的代币标准,实现了代币转账的基本逻辑:账户余额(balanceOf())转账(transfer())授权转账(transferFrom())授权(approve())代币总供给(totalSupply())授权转账额度(allowance())代币信息(可选)名称(name())......
  • 适用于openEuler系统升级openssh9.8p1和openssl3.3.1
    目前在openEuler2203 LTS上测试通过#!/bin/bash./etc/os-releaseOpensslVersion=3.3.1OpensslVersion1=`opensslversion|awk'{print$2}'`OpensshVersion=9.8p1CURRENT_DATE=$(date+%Y%m%d%H%M%S)echo-e"\e[1;35m=================================......
  • ARM Trusted Firmware-A && RISC-V OpenSBI 汇总
    TrustedFirmware-A如图为ARMTrustedFirmware(可信固件)开源项目集合,它为带有ExceptionLevel3(EL3)SecureMonitor的ARM架构(Armv8-A、Armv9-A和Armv8-M等)提供了安全软件的实施参考实现。1.TF-A概述TrustedFirmware-A(TF-A)project是ARM可信固件的......
  • 德承工控机DX-1200 成功适配2024年6月6日发布的国产开源系统OpenEuler 24.03 LTS
    基础软件双子星:欧拉系统(OpenEuler)&鸿蒙系统(OpenHarmony),鸿蒙系统常应用在华为的手机和平板电脑上,大众也较为熟悉,是面向消费电子产品领域的系统;而欧拉系统则是面向服务器、存储、云服务、边缘计算、嵌入式工控机等专业应用领域的系统。OpenEuler欧拉操作系统(简称“欧拉”,或是“......
  • OpenEuler安装MongoDB并配置访问密码
    1.下载MongoDB、安装wgethttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.18.tgztarzxvfmongodb-linux-x86_64-rhel80-4.4.18.tgz移动到/home路径下mvmongodb-linux-x86_64-rhel80-4.4.18/homecd/homemvmongodb-linux-x86_64-rhel80-4.4.1......
  • FPGA、VHDL 基于RISC-V格式的16位位缩模型机设计
    项目地址:FPGA、VHDL基于RISC-V格式的16位位缩模型机设计设计目的实现基于RISC-V格式的16位MCU设计,参考RISC-V的基本格式,进行位数缩减。实现RISC-V中寄存器加法add,立即数加法addi,半字加载lh,半字存储sh,不等条件跳转bne,相等条件跳转beq,无条件跳转链接jal。实现立即寻址、寄存......
  • 8 位 RISC 模型机 状态机控制 ALU双端口
    8位RISC模型机状态机控制双端口项目地址:8位RISC模型机状态机控制双端口从8位寄存器(D触发器)开始DDD:8位输入......