使用 Rust 开发:以太坊与 Layer2 生态建设新趋势

图片

Rust 是一种系统编程语言,以其出色的性能、内存安全和并发性而闻名,在区块链和 Web3 中广泛应用,大多数编程语言和开发框架都以 Rust 为核心,如 Polkadot、Solana、NEAR、Elrond(现名 MultiversX)、Hyperledger Sawtooth 等众多优质区块链项目都使用 Rust 语言开发,或用 Rust 语言开发其上的智能合约。

Rust 为无数技术和工具的突破提供了底层开发支撑,是面向未来的区块链技术语言。在 Rust 的帮助下,开发者能够专注于构建核心业务逻辑,进一步推动 Web3 项目的开发与创新。近期以来,Rust 有哪些已实现的成功应用,为 Web3 工具和程序提供了怎样的底层开发编程支持?TinTinLand 带你一览 Rust 语言在以太坊与 Layer2 生态开发的最新进展。

Reth 为以太坊客户端提供一流性能

通过以太坊,开发者可以创建具有区块链技术优势的 DApp。这些 DApp 是可信的,一旦部署到以太坊,它们将始终按照设定程序运行,并可以控制数字资产,以创建新类型的金融应用。这些 DApp 也是去中心化的,没有单一的实体或个人能控制它们,也就几乎不可能受到审查。利用 Rust 语言和相关工具,开发者在可以在以太坊上从头开始构建这些非常简单的 Web3 应用程序。如果你也想着手实现自己的想法,可以在这里学习如何使用并通过基于 Rust 的项目及工具参与以太坊的开发🌐:https://ethereum.org/zh/developers/docs/programming-languages/rust/#beginner-articles 

Reth(Rust Ethereum)是 Paradigm 开发的一款基于 Rust 语言的免费、开源的以太坊执行层客户端。这是一款专注于用户友好、模块化、快速和高效的新型以太坊全节点实现,与支持 Engine API 的所有以太坊共识客户端实现兼容。作为一个完整的以太坊节点,Reth 将允许用户从创世区同步完整的以太坊区块链,并在同步完成后与其交互(以及其历史状态,如果处于存档模式下)。

图片

Paradigm 开发 Reth 旨在满足广泛的用户需求,包括权益验证者、爱好者、RPC 节点运营商、桥接器、MEV 搜索者,甚至是 Layer2 网络(如 Optimism/Arbitrum),或其他以太坊相关项目(如 Polygon、BSC、Avalanche、Fantom 等)。这些用户通常具有多样的需求(例如,爱好者和权益验证者希望在廉价硬件上运行节点,而 RPC 节点运营商可以使用昂贵的磁盘和云快照)。Reth 并非试图一次解决所有需求。相反,它致力于创建一个可配置的节点,允许用户根据他们的需求探索权衡空间。

Reth 仍在不断完善中,可能会经常进行更改。该代码尚未经过审计,不应在生产环境中使用。然而,为了保持透明度和与以太坊的价值观一致,Paradigm 将其进行开源并分享了他们的愿景。该代码在 Github 上以自由的 Apache/MIT 许可证免费提供,任何人都可以自由使用。Paradigm 鼓励社区进行分叉(fork),贡献文档、问题、拉取请求、提出问题,甚至尝试破解它。

选择使用 Rust 语言进行开发,是因为 Paradigm 希望 Reth 能提供一流的性能,为了实现这一目标,他们选择使用 Rust 作为编程语言和 Erigon 团队首创的分阶段同步节点架构。另一方面,Paradigm 也希望 Reth 从编写语言和编译器开始,就具有强大的稳定性基础,因此选择了具有稳定特性的 Rust 语言,以及维护良好的代码库。

在 Paradigm 看来,「Rust 是系统、数据库和网络工程的突破性工具。我们认为以太坊是一个高保证的操作系统,需要能够抵御最大的对手,没有比 Rust 更好的工具来实现这一目标了。」

感兴趣的开发者可以在这里了解更多详情🔎https://github.com/paradigmxyz/reth

a16z 打造高速 OP 客户端 Magi

加密风险投资基金 a16z Crypto 推出了自己的 Layer2 OP Stack 解决方案,名为 Magi。作为其进军 Optimism Collective 的第一步,Magi 是用 Rust 语言编写的高速 Roll-up 客户端(共识层)

图片

在以太坊的执行层中,Magi 作为共识客户端向执行客户端提供新的区块,以推动区块链的发展。根据 a16z 的说法,「Magi 执行与参考实现(如 op-node)相同的核心功能,并与执行节点(如 op-geth)一起同步到任何 OP Stack 链,包括 Optimism 和 Base。」

Magi 被设计为独立开发的、可以直接替代 Op-node 的解决方案,并提高了 Rollup 客户端的多样性。此外,a16z 团队计划对 Magi 进行未来的改进,例如跟踪不安全头(未确认区块)、新的同步机制、备用数据可用性层支持和更好的框架等。

以太坊链上执行和共识方面都需要客户端多样性,然而到目前为止,大部分开发都集中在执行客户端上。现有的以太坊执行客户端都可以通过实施一组适度的更改与 Optimism 兼容,并且几个新项目已经在调整这些客户端以帮助实现客户端多样性,比如 OP Labs 修改 Geth 客户端以构建 op-geth,其他团体目前正在建设 op-erigon 和 op-reth。

不过,Rollup 客户端改造难度更高,因为 Rollup 客户端是一个全新的软件。到目前为止,只有一种实现:Op-node,是由 OP Labs 维护并用 Go 语言编写。Magi 的目标是成为一个独立开发的 Op-node 直接替代品,以提升 Rollup 的客户端多样性。a16z 希望构建一个基于 Rust 的新客户端将鼓励整个 OP 堆栈更加安全和活跃,并为生态系统带来更多贡献者。

感兴趣的开发者可以在这里了解更多详情🔎https://github.com/a16z/magi

用 Rust 编写轻量访问以太坊的 Helios

Helios 同样是 a16z Crypto 推出以太坊轻客户端该客户端基于 Rust 语言进行编写,提供对以太坊的完全去信任访问,而且能在在大约两秒钟内同步,无需存储,并且允许用户从任何设备(包括手机和浏览器扩展)访问安全链数据,功能与全节点相同。

图片

Helios 使用了以太坊切换至 PoS 后促成的轻客户端协议,能将数据从不受信任的中心化 RPC 提供程序转换为安全可验证的本地 RPC 中,Helios 还能结合中心化 RPC,可以在不运行完整节点的情况下验证有关链上状态的各种信息,例如账户余额、合约存储、交易收据和智能合约调用结果等数据的真实性。与所有以太坊客户端一样,Helios 由执行层和共识层组成。但与多数其他客户端不同,Helios 将这两层紧密耦合,用户只需安装和运行单个软件即可

难以兼顾便捷性与去中心化是一个常见痛点,通过轻量级的 Helios,用户可从任何设备(包括手机和浏览器插件)访问安全的链上数据。这将使更多人可以访问无需信任的以太坊数据,不论使用什么硬件。用户可以在 MetaMask 中将 Helios 作为他们的 RPC 提供商,以实现无需信任地访问各种 DApp,整个过程无需任何其他更改。

其中,Rust 对 WebAssembly 的支持,使得应用开发人员可以轻松将 Helios 嵌入 Javascript 应用程序(如钱包和 DApp)中。这些集成将提升以太坊的安全性,减少对中心化基础设施的信任需求。

感兴趣的开发者可以在这里了解更多详情🔎https://github.com/a16z/helios

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 指针动画转动

记录一种简单动画 效果图&#xff1a; 都是直接使用图片资源FrameLayout布局实现&#xff0c;布局如下&#xff1a; <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"…

【JavaEE】Java多线程编程案例 -- 多线程篇(3)

Java多线程编程案例 1. 单例模式1.1 代码的简单实现1.2 懒汉模式的线程安全代码 2. 阻塞队列2.1 阻塞队列的概念2.2 使用库中的BlockingDeque2.3 模拟实现阻塞队列2.4 生产者消费者模型 3. 定时器3.1 概念3.2 使用库的定时器 - Timer类3.3 模拟实现定时器 4. 线程池4.1 概念4.2…

面向对象设计原则之依赖倒置原则

目录 定义原始定义进一步的理解 作用实现方法代码示例 面向对象设计原则之开-闭原则 面向对象设计原则之里式替换原则 面向对象设计原则之依赖倒置原则 面向对象设计原则之单一职责原则 定义 依赖倒置原则&#xff08;Dependence Inversion Principle&#xff09;&#xff0c…

互联网Java工程师面试题·Java 总结篇·第十一弹

目录 90、简述一下你了解的设计模式。 91、用 Java 写一个单例类。 92、什么是 UML&#xff1f; 93、UML 中有哪些常用的图&#xff1f; 94、用 Java 写一个冒泡排序。 95、用 Java 写一个折半查找。 90、简述一下你了解的设计模式。 所谓设计模式&#xff0c;就是一套被…

最新Ai写作创作系统源码+Ai绘画系统源码+搭建部署教程+支持GPT4.0+支持Prompt预设应用+思维导图生成

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统&#xff0c;支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

2、Kafka 生产者

3.1 生产者消息发送流程 3.1.1 发送原理 在消息发送的过程中&#xff0c;涉及到了两个线程——main 线程和 Sender 线程。在 main 线程 中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator&#xff0c; Sender 线程不断从 RecordAccumulator 中…

OpenCV 笔记(2):图像的属性以及像素相关的操作

Part11. 图像的属性 11.1 Mat 的主要属性 在前文中&#xff0c;我们大致了解了 Mat 的基本结构以及它的创建与赋值。接下来我们通过一个例子&#xff0c;来看看 Mat 所包含的常用属性。 先创建一个 3*4 的四通道的矩阵&#xff0c;并打印出其相关的属性&#xff0c;稍后会详细…

安装Sentinel

大家好今天来安装Sentinel . 安装Sentinel 下载 : 大家可以选择相应版本(最新版本1.8.6) 官网下载地址 : Release v1.8.6 alibaba/Sentinel GitHub 链接&#xff1a;Sentinel_免费高速下载|百度网盘-分享无限制 (baidu.com) 提取码&#xff1a;8eh9 运行 : 将jar包放到任…

Youtrack Linux 安装

我们考虑最后应该使用的是 ZIP 方式的安装。 按照官方的说法如何设置运行 YouTrack 应该是非常简单的。 准备环境 根据官方的说法&#xff0c;我们需要做的就是下载 Zip 包&#xff0c;然后把 Zip 包解压到指定的目录中就可以了。 下载 当前官方的下载地址为&#xff1a;Ge…

基于nodejs+vue中学信息技术线上学习系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

单片机郭天祥(02)

1&#xff1a;解决keil5软件的乱码问题&#xff0c;修改编码为UTF-8 2&#xff1a;打开keil5使用debug对编写好的程序进行调试 给程序打上断点 使用仿真芯片 更改设备管理器相关设置 接通电源后点击debug连接到51单片机 使用stc-isp获取延时函数 将延时函数添加进入创建好的…

17-spring aop调用过程概述

文章目录 1.源码2. debug过程 1.源码 public class TestAop {public static void main(String[] args) throws Exception {saveGeneratedCGlibProxyFiles(System.getProperty("user.dir") "/proxy");ApplicationContext ac new ClassPathXmlApplication…

在JavaScript中,如何创建一个数组或对象?

在JavaScript中,可以使用以下方式创建数组和对象: 一:创建数组(Array): 1:使用数组字面量(Array Literal)语法,使用方括号 [] 包裹元素,并用逗号分隔: let array1 = []; // 空数组 let array2 = [1, 2, 3]; // 包含三个数字的数组 let array3 = [apple, banana,…

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进程

目前&#xff0c;行业内首个模块化 Layer3 架构公链 Nautilus Chain 已经上线主网&#xff0c;揭示了模块化区块链领域迎来了全新的进程。在主网上线后&#xff0c;Nautilus Chain 将扮演 Zebec 生态中最重要的底层设施角色&#xff0c;并将为 Zebec APP 以及 Zebec Payroll 规…

ESP32C3 LuatOS TM1650②动态显示累加整数

--注意:因使用了sys.wait()所有api需要在协程中使用 -- 用法实例 PROJECT "ESP32C3_TM1650" VERSION "1.0.0" _G.sys require("sys") local tm1650 require "tm1650"-- 拆分整数&#xff0c;并把最低位数存放在数组最大索引处 loc…

用Nginx搭建一个具备缓存功能的反向代理服务

在同一台服务器上&#xff0c;使用nginx提供服务&#xff0c;然后使用openresty提供反向代理服务。 参考《Ubuntu 20.04使用源码安装nginx 1.14.0》安装nginx。 参考《用Nginx搭建一个可用的静态资源Web服务器》搭建静态资源Web服务器&#xff0c;但是/nginx/conf/nginx.conf里…

Uniapp软件库源码 全新带勋章功能(包含前后端源码)

Uniapp软件库全新带勋章功能&#xff0c;搭建好后台 在前端找到 util 这个文件 把两个js文件上面的填上自己的域名&#xff0c; 电脑需要下载&#xff1a;HBuilderX 登录账号 没有账号就注册账号&#xff0c;然后上传文件&#xff0c;打包选择 “发行” 可以打包app h5等等。…

异常数据检测 | Python基于Hampel的离群点检测

文章目录 文章概述模型描述源码分享文章概述 在时间序列数据分析领域,识别和处理异常点是至关重要的任务。异常点或离群点是明显偏离预期模式的数据点,可能表明存在错误、欺诈或有价值的见解。 应对这一挑战的一种有效技术是汉普尔过滤器(Hampel Filter)。 模型描述 汉…

spark获取hadoop服务token

spark 作业一直卡在accepted 问题现象问题排查1.查看yarn app日志2.问题分析与原因 问题现象 通过yarn-cluster模式提交spark作业&#xff0c;客户端日志一直卡在submit app&#xff0c;没有运行 问题排查 1.查看yarn app日志 appid已生成&#xff0c;通过yarn查看app状态为…

Note——torch.size() umr_maximum() array.max() itertools.product()

torch.size Problem TypeError: ‘torch.Size’ object is not callable Reason Analysis torch.Size函数不可调用 因为torch只可以.size() 或 shape Solution 将y.shape()替换为y.size() 或 y.shape ytorch.normal(0,0.01,y.size())2 return umr_maximum(a, axis, None…