#bitcoin #farcaster #monero #atomic-swap

farcast_core

Farcaster项目核心库,区块链原子交换

15个不稳定版本 (5个破坏性版本)

0.6.4 2023年1月2日
0.6.3 2022年12月28日
0.5.1 2022年8月15日
0.5.0 2022年7月27日
0.4.0 2021年11月17日

#2034魔法豆

Download history 4/week @ 2024-03-08 2/week @ 2024-03-15 69/week @ 2024-03-29 19/week @ 2024-04-05

每月下载量 138次
farcaster_node 中使用

LGPL-3.0

405KB
7.5K SLoC

Build Status unsafe forbidden Crates.io Documentation License: LGPL v3 MSRV

Farcaster Core Library

Farcaster原子交换项目核心库旨在使用Rust实现以下功能,以构建交换节点

  • 交换交易(包含启动交换所需的所有信息)
  • 交换角色和交易角色(在交换过程中谁做什么)
  • 实现链上行为的交易模板(仲裁引擎,例如在比特币区块链上)
  • 签名和密码学工具
    • ECDSA适配器签名
    • 跨组离散对数证明系统
    • Schnorr适配器签名
  • 交换节点之间交换的消息,即对等互连消息,也称为协议消息

文档

请查看docs.rs/farcaster_core上的此库的文档。所有可能的改进,如添加使用示例和扩展现有文档,都将非常受欢迎。

核心框架

此库的目的是双重的:提供灵活的框架以添加特定的区块链支持,并实现这些特定的区块链(目前是bitcoinmonero)。框架被拆分在crate的根模块中

  • blockchain:用于声明资产/链和链上行为的通用类型和特质。
  • consensus:crate中所有类型的编码和解码实现,用于序列化和反序列化交换的消息。
  • crypto:定义密码学交互的特质和通用类型(钱包能力、提交/揭示方案、签名和密钥类型等)。
  • trade:处理交易设置(例如创建交易)的通用类型和工具。
  • protocol:与协议执行和节点之间交换的消息相关的通用类型。
  • role:角色定义(交易和交换)和通用框架的特质。
  • script:事务数据管理的泛型类型。
  • swap:与交换相关的类型和交换具体实例(例如 bitcoin-monero)。
  • transaction:构建和验证仲裁事务集的事务特性,即实现协议博弈论机制的链上引擎。

以下模块添加了区块链特定支持

  • bitcoin:支持比特币,实现框架中所有必需的特性,例如 Arbitrating 区块链角色。
  • monero:支持门罗币,实现框架中所有必需的特性,例如 Accordant 区块链角色。
  • swap/btcxmr:定义了比特币和门罗币模块之间的交换,大多数泛型类型与固定类型相关联,并重新导出与 bitcoinmonero 关联的类型。

功能

experimentaltaproot 功能默认启用。

  • 实验性:启用实验性密码学,即未经过实战测试或同行评审,使用风险自负。
  • taproot:[进行中] 启用对比特币 Taproot 链上脚本的支持,作为仲裁引擎方法。

添加区块链支持

查看 bitcoinmoneroswap/btcxmr 模块以查看交换对示例。有关高级上下文的更多详细信息,请参阅 RFCs

版本和变更日志

请参阅 CHANGELOG.mdRELEASING.md

关于

这项工作是 Farcaster 跨链原子交换项目的一部分,请参阅 Farcaster 项目

许可

本项目中的代码根据 LGPL-3.0 许可证许可。

依赖项

~19MB
~294K SLoC