FinalisCore/finalis-core

GitHub: FinalisCore/finalis-core

一个基于 BFT 共识的确定性终态区块链核心协议栈,提供从全节点到钱包的完整组件,以无分叉选择的严格终态模型消除链重组风险。

Stars: 2 | Forks: 0

Finalis Core

# Finalis Core `finalis-core` 是一个终态 BFT 区块链,其中验证者生命周期、原生操作员委员会组建、自适应检查点推导以及未来委员会资格,均确定性地从已终结的历史状态中推导得出。 当前主网身份: - `network_name = mainnet` - `network_id = fe561911730912cced1e83bc273fab13` - `genesis_hash = eaae655a1eec3c876bd2e66d899fc8da93d205a5df36a2665f736387aa3cb78a` - `magic = 0x499602D2` 在当前的代码库中,它包含: - 一个 UTXO 账本 - 通过 `Tx`、`TxV2` 和 `AnyTx` 处理版本化交易 - 通过 `UtxoSetV2` 实现版本化 UTXO 状态 - 一个验证者委员会 - 法定人数终态 - 确定性的基于 epoch 边界的检查点推导 - 终态读取接口 实时运行时仅处理: `height = finalized_height + 1` 节点运行时中没有实时的最长链分叉选择路径。 在经过刻意的创世重置之后,旧的链数据库、旧的端点假设以及废弃链的产物都不能作为此当前网络的合法输入。 ## 仓库组件 - `finalis-node` - 全节点 - 验证 - 终态执行 - 委员会 / 终态运行时 - `finalis-lightserver` - 终态 JSON-RPC 服务 - `finalis-explorer` - 构建于 lightserver 之上的 HTTP UI 和 REST 层 - 本地优先的缓存主页 / tx / 转换视图,带有新鲜度和来源标记 - `finalis-wallet` - Qt 桌面钱包 - 本地优先的缓存运行时/视图状态 - 用于支持机密子集的机密账户、接收请求和导入代币 UX 本仓库还包含: - [formal/](formal/) 下的正式 TLA+ 检查点 / 可用性模型 - [scripts/protocol_attack_sim.py](scripts/protocol_attack_sim.py) 下的对抗性模拟 - [tests/fixtures/](tests/fixtures) 下的 C++ 固定导出和 Python 一致性测试 ## 协议事实 - 区块通过 `floor(2N/3) + 1` 个有效签名终结 - 投票和法定人数证书绑定至 `(height, round, block_id)` - 某一高度的委员会来自于该高度所在 epoch 的已终结检查点 - 验证者生命周期变更仅来自已终结历史 - 未来的检查点资格由已终结的预期可用性进行门控 - 检查点目标委员会大小、检查点最低合格阈值以及检查点最低质押,均确定性地从已终结的合格操作员深度中推导得出 - Ticket PoW 在委员会选择中是有界的且处于次要地位 ## 读取接口 `finalis-lightserver` 暴露了终态 RPC 方法,例如: - `get_status` - `get_tx_status` - `get_tx` - `validate_address` - `get_utxos` - `get_history_page` - `broadcast_tx` `finalis-explorer` 暴露了轻量级终态 HTTP 路由,例如: - `/api/status` - `/api/committee` - `/api/tx/` - `/api/transition/` - `/api/address/
` `broadcast_tx` 是一个中继提交接口。最终的可见性依然来自于终态查找。 当前代码库还通过 `TxV2` 支持有界的机密交易子集: - 透明 -> 机密 - 机密 -> 透明 公开读取接口保持仅限终态,并且不会像透明字段那样暴露机密输出的金额或接收者。 ## 地址和密钥 当前的密钥 / 地址模型为: - Ed25519 私钥 - Ed25519 32字节公钥 - P2PKH 地址 - `HASH160(pubkey)` 地址载荷 - `sc` / `tsc` 基于 HRP 的地址编码 请参阅 [docs/ADDRESSES.md](docs/ADDRESSES.md)。 ## 经济学 当前代码实现了: - 确定性奖励结算 - `src/common/network.cpp` 中基于高度门控的经济学计划 - 自适应检查点目标 / 最低合格 / 最低质押推导 - `7,000,000 FLS` 的精确硬顶 - 确定性的 `12` 年排放计划,每年 `20%` 衰减 - 排放期间 `10%` 的储备累积 - 达到硬顶后零新增发行 - 硬顶后 epoch 费用池,并带有确定性的储备补贴支持 ## 运行节点 ## 快速开始(非开发者) ### Windows 1. 从发布页面下载最新的 Windows 安装程序。 2. 安装并启动 `finalis-node`(如果您需要钱包/浏览器访问权限,还需启动 `finalis-lightserver`)。 3. 使用以下命令验证身份: curl -s http://127.0.0.1:19444/rpc -d '{"jsonrpc":"2.0","id":1,"method":"get_status","params":{}}' 确认 `network_id`、`magic` 和 `genesis_hash` 与上述数值一致。 ### Linux 如果有可用的 Linux 二进制发布版本,请下载并运行。否则,请使用 下面的构建步骤(需要 C++ 工具链)。 对于 Windows 构建/发布,请使用: - [finalis-core 发布版](https://github.com/FinalisCore/finalis-core/releases) ``` apt install -y build-essential cmake ninja-build pkg-config libssl-dev \ qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools \ libsodium-dev librocksdb-dev curl jq ``` ``` git clone https://github.com/FinalisCore/finalis-core.git ``` ``` cd finalis-core ``` 构建: ``` cmake -S . -B build -G Ninja && cmake --build build -j ``` 依赖说明: - 如果缺少 `third_party/secp256k1-zkp`,CMake 将自动获取它(需要网络)。 - 要强制进行离线构建,请禁用自动获取并提供供应商树: `cmake -S . -B build -G Ninja -DFINALIS_AUTO_FETCH_DEPS=OFF` `git submodule update --init --recursive` ## 运行 在主网上首次启动之前: - 清除旧的链数据库 - 确保您的本地验证者密钥确实存在于目标创世验证者集合中 - 确保您的二进制文件嵌入了与启动时使用的相同的规范 `genesis.bin` ``` ./scripts/start.sh ``` ## 快速同步命令: ``` SYNC_TURBO_MODE=extreme ./scripts/start.sh ``` 当前主网配置的默认端口: - P2P: `19440` - lightserver: `19444` 在依赖公共基础设施之前,请务必使用 `get_status` 验证实时端点身份。 ## 寻求社区帮助 如果您能制作清晰、分步的安装和启动视频(Linux 和/或 Windows), 请公开发布并分享链接。我可以赞助最佳教程并提供足够的 FLS, 以涵盖验证者注册的要求。 ## 测试 ``` ctest --test-dir build --output-on-failure ``` ## 文档 - 通用文档:[docs/](docs/) - 代码库地图:[docs/CODEBASE_MAP.md](docs/CODEBASE_MAP.md) - 架构指南:[docs/ARCHITECTURE_ORIENTATION.md](docs/ARCHITECTURE_ORIENTATION.md) - 物理设计指南:[docs/PHYSICAL_DESIGN_GUIDELINES.md](docs/PHYSICAL_DESIGN_GUIDELINES.md) - 许可证政策:[docs/LICENSE_POLICY.md](docs/LICENSE_POLICY.md) - 贡献指南:[CONTRIBUTING.md](CONTRIBUTING.md) - 交易所集成:[docs/EXCHANGE_INTEGRATION.md](docs/EXCHANGE_INTEGRATION.md) - 实时协议:[docs/LIVE_PROTOCOL.md](docs/LIVE_PROTOCOL.md) - 共识概览:[docs/CONSENSUS.md](docs/CONSENSUS.md) - 机密 UTXO 规范:[docs/spec/CONFIDENTIAL_UTXO_SPEC.md](docs/spec/CONFIDENTIAL_UTXO_SPEC.md) - 检查点推导规范:[docs/spec/CHECKPOINT_DERIVATION_SPEC.md](docs/spec/CHECKPOINT_DERIVATION_SPEC.md) - 可用性完整性规范:[docs/spec/AVAILABILITY_STATE_COMPLETENESS.md](docs/spec/AVAILABILITY_STATE_COMPLETENESS.md) ## 许可证 [LICENSE](LICENSE)
标签:Bash脚本, BFT共识, C++, JSON-RPC, Python, Qt桌面钱包, REST API, TLA+, UTXO模型, Web3, 主网, 交易处理, 便携式工具, 全节点, 分布式账本, 加密货币, 加密钱包, 区块浏览器, 区块链, 区块链核心栈, 安全测试工具, 形式化验证, 拜占庭容错, 数据擦除, 无后门, 最终确定性, 本地优先, 状态检查点, 确定性状态, 节点软件, 轻节点服务, 逆向工具, 零知识证明, 验证器委员会