Solana编译失败探讨(OpenEuler RISC-V版)

打印 上一主题 下一主题

主题 1799|帖子 1799|积分 5397

  Solana 是 2017 年由 Anatoly Yakovenko 建立的开源项目,旨在打造高性能、去中心化且低成本的区块链平台2。它接纳独特的 Proof of History(PoH)共识机制,结合 Tower BFT 等技术,实现了每秒数千笔交易的高吞吐量,确认时间仅 400 毫秒,每笔交易中位数费用为 0.00064 SOL12。Solana 支持链上程序开发,开发者可用 Rust 等语言编写智能合约,基于 eBPF 假造机高效运行1。其生态发展迅速,在 DeFi、NFT、GameFi 等领域扩张迅猛,依附高性能和低费用吸引了大量开发者和用户,是市值第三的公链,对以太坊等传统公链构成有力挑战。
  结合手头的工作,我做一次在OpenEuler 24.09 RISC-V上部署Solana的实战,并且调研失败的原因。
  此处跳过Rustup以及Cargo、Rustc的下载,直接先从官网克隆Solana的项目下来。
  1. cd solana
  2. ./cargo build
复制代码
  cargo用的是Solana官方提供的,不外出现了以下错误

  我查了一下ring,它是一个加密算法库,主要用Rust实现,不外里面还有不少汇编代码,到这里的时候,我是初步怀疑没有提供RISC-V的汇编导致 build 失败,看了一下还真是。

  有很大篇幅都是用 Assembly 写的,再随便挑了一个源码看看

  就比如这个函数,很显然在OpenEuler RISC-V上,这几个预编译条件都不满足,好在这是 void 类型的函数,末了这个函数变成了空函数。不外有意思的是,cargo build 很顺利,并没有失败。
  cargo build 是顺利的,不外到了这里有一个 build-script,是一个可实行文件,我实验运行了一下,出现了似曾相识的错误。

  和文章开头的那图一样,也是 thread "main" panic,因此又可以找到一个可以移植的软件包了,那就是 ring,因为这个,我在部署 Solana 的时候受挫,同时我也看了看 build.rs,这大概是它支持的几种架构。

  看起来只支持常见的 x86,arm和wasm。不外这只是我在部署 Solana 遇到的第一个难点,假设 ring 移植乐成了,背面可能还会遇到其它同样因为 RISC-V 而失败的包,本来 ring 已经够庞大了,因此移植 Solana 看起来似乎是一个工作量非常大的使命。
  记录下来,如果有一天这些包乐成移植完成了,再回头看看是否可以移植 Solana。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表