JS RPC Server — DeFi 链上交易 RPC 服务产品系统

我要开发同款
天天向上2026年09月17日
4阅读

技术信息

语言技术
Node.jsES6
系统类型
Web
行业分类
区块链

作品详情

行业场景

web3相关的项目,通常需要方便地和钱包交互、调用智能合约。
各种项目方的SDK通常是用JS写的,但我的项目可能是任何语言写的。因此需要RPC远程调用。
因此有必要把Ethers.js和uniswap包装成rpc调用。把常用功能写成API接口。

源代码:https://github.com/lj92458/js_rpc_server

功能介绍

JS RPC Server 是一个基于 Node.js 的生产级 DeFi 远程调用服务,将 Uniswap V3、1inch DEX 聚合器等核心 DeFi 能力封装为标准化的 RPC 接口。项目内置智能合约钱包 (Multicall3),可将多个任意合约调用原子打包为一个事务、统一回滚,确保交易安全性。支持 5 条 EVM 兼容链,使任何语言、任何平台的客户端都能以极低接入成本调用链上交易能力。

项目实现

这是我为了实现自己的目的,给自己开发的。
技术栈
项目基于Node.js构建,采用Hprose作为跨语言RPC框架,区块链交互使用ethers.js v6。DeFi能力依赖Uniswap V3 SDK和1inch Fusion SDK,分别实现单DEX交易与跨 DEX 聚合。智能合约钱包基于Multicall3自建,批量读取使用ethers-multicall。

架构设计
系统分三层。RPC服务层通过Hprose暴露接口,任意语言客户端可调用。业务层划分为资产管理、报价与订单簿、交易下单三个模块,职责清晰。核心库层封装交易构造、池状态管理、多链Provider、Tick位图解析等基础能力,数据通过SQLite3持久化,链上操作通过Multicall3原子提交。

核心亮点
1.智能合约钱包原子事务,将多个合约调用打包为单个 EVM 事务,任一步失败整体回滚,杜绝中间状态的资产损失。
2. DEX到CEX订单簿转换,这是项目最具创新性的设计。将 Uniswap V3 的 AMM 连续流动性离散化为买卖挂单,输出与 CEX 一致的盘口格式,策略可直接对比 DEX 与 CEX 价差发现套利机会。
3.事件驱动零轮询,订单簿监听链上事件,仅在流动性变化时触发重建并推送,无变化时零开销。

技术难点
1.Tick 位图解析,需通过 TickLens 批量读取链上位图,再用自定义二分查找定位已初始化 Tick,数据量大且一致性要求高。
2.AMM 到订单簿的数学映射,将恒定乘积公式下的连续流动性离散化为有限档位挂单,需逐档模拟执行价格,任何精度误差都会导致盘口失真。
3.原子事务构造,需将不同合约调用统一编码并保证整体回滚一致性,编码复杂度高。
4.多链适配与事件监听稳定性,五条链的 Gas 机制、超时覆盖、重试策略需统一抽象,还要处理链重组等边界情况。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论