TVHeroes/Sharecoin

GitHub: TVHeroes/Sharecoin

Sharecoin 是 Bitcoin Core 的分叉币,用 GPU 友好的 ProgPoW/KawPow 替换 SHA-256d 挖矿算法,并将挖矿产生的 mix_hash 转化为公开可验证的随机性 beacon。

Stars: 2 | Forks: 0

Sharecoin logo # Sharecoin (SHC) 这是 Bitcoin Core C++ 源代码的一个真实分支,它将挖矿的工作量证明算法从 SHA-256d 替换为了 ProgPoW/KawPow——这正是 Ravencoin 所使用的那种对 GPU 友好且抗 ASIC 的算法。其他所有内容(交易、脚本、钱包、P2P 网络和 RPC)均与上游 Bitcoin Core 保持一致。 下面的构建说明假定使用 Linux,这也是构建任何 Bitcoin Core 分支的标准方式。不过,使用 Sharecoin 并不需要你亲自编译任何东西——请参阅下方的预编译包说明,或者查阅 [docs/WINDOWS.md](docs/WINDOWS.md) 了解 Windows 环境下的特定路径,如果你更倾向于在那使用预编译二进制文件的话。 **只是想开始挖矿,不想克隆或编译?** 请从 [Releases](https://github.com/TVHeroes/sharecoin/releases/latest) 获取预编译包—— Windows 版本提供便携版钱包及启动器(解压后,按照 [START-HERE.txt](START-HERE.txt) 操作);Linux 版本则将 `sharecoind`/`sharecoin-cli`/`sharecoin-util`/`sharecoin-qt` 全部打包在一个 tarball 中(运行 GUI 钱包需要预先安装 Qt6 运行时库——具体各发行版的软件包名称请参阅 tarball 内的 README.txt)。 **想要更简单的?** [Sharecoin Simple Wallet](https://github.com/TVHeroes/sharecoin-simple-wallet) 是一款面向普通用户的单一便携应用:打开它,获取一个钱包,点击按钮,即可开始挖矿,无需任何配置文件或参数。它自带了 GPU 矿工,因此无需额外单独下载任何内容。目前仅支持 Windows。 ## 核心理念 几乎每一个 Bitcoin 分支都悄悄抛弃了这一点:所有这些 GPU 计算能力正在产生真正有价值的东西,而在此之前,还没有人打算将其用于自身以外的任何用途。Sharecoin 做到了。 在这里挖出的每一个 ProgPoW 区块都带有一个 `mix_hash`——这是一个不可预测、通过密码学努力获得的数字,它需要消耗真实的 GPU 算力(运行时长)才能生成,并且无法被伪造、抢先交易或事后购买。那不是废气,而是原材料。`getrandombeacon` 将其转变成了互联网上每一个抽奖、彩票、NFT 揭晓、匹配系统以及基于抽签的 DAO 都在默默渴望的东西:**任何人都无法作弊的随机性。** 无需信任任何 oracle,没有在某个人数据中心里悄悄掷骰子的后端,也没有供应商锁定——只有数学、GPU 和一条原本就在正常挖矿的区块链。 这里的去中心化并不是从第一天起就内置的承诺——它是究竟有谁实际参与并挖矿的函数体现。其底层机制并不关心存在多少个节点;但安全性保障却取决于此。每一个加入的独立矿工和节点,都会使这个 beacon 更难被任何单一方施加偏见,并且挖出的每一个区块都消耗了真实的算力,将不可预测性转变为一种公共产品,而非企业产品。无论目前有多少节点正在运行,此刻已经成立的事实是:该机制是真实的、鲜活的,并且可以通过 RPC 调用——它不是一纸白皮书上的空头支票,而是一个你此时此刻就能直接查询的功能。 Bitcoin 证明了你可以挖出金钱。Sharecoin 的到来是为了证明你可以挖出信任。 没有预挖,没有创始人分配,没有预售,在创世区块之前也没有为任何人预留任何代币。流通中的每一个代币都是以相同的方式、由任何拥有 GPU 的人挖出的,且都起始于与所有人相同的、可公开验证的创世区块。 **当前链(自 2026-07-28 起活跃)是将长久存在的一条链。** 与任何年轻的项目一样,在其早期的网络探索阶段,曾涉及过创世/共识的更改,最近的一次是完全重建,直接取代了之前的链而不是进行迁移——这个阶段现在已经结束了。除非出现确实严重且别无选择的 Bug,否则这就是未来用于挖矿、持有和构建的区块链。 ## 联系方式 论坛 - https://bitcointalk.org/index.php?topic=5588928 Discord - https://discord.gg/RcRWE7vbG 电子邮件 - tvheroes@protonmail.com ## 目录 - `bitcoin-source/` - 经过修补的 Bitcoin Core 源代码树,其构建方式与上游一致(`bitcoin-source/doc/build-*.md`)。 - `generate_wallet.py` - 独立的离线钱包/密钥对生成器,纯 Python 编写,可在任何操作系统上运行。 - `patch_*.py` - 针对上游 Bitcoin Core 每一项更改的逐文件字面记录——如果只是想使用本项目,则无需阅读;若要审计或重新推导差异,请参阅 `docs/DETAILS.md`。 - `wallet/` - 预编译的 Windows 二进制文件和 `.bat` 启动脚本,请参见 `docs/WINDOWS.md`——在 Linux 上不需要。 - `START-HERE.txt` - 面向任何使用 Releases 中预编译 Windows 包(而非从源码构建)的用户的通俗快速入门指南。 - `WHITEPAPER.pdf` - 关于协议、威胁模型以及随机性 beacon 设计的正式说明文档。 真正的 GPU 挖矿软件(kawpowminer 等)并未在此处打包提供——请参阅下文的“挖矿”部分。 ## 构建 构建 `bitcoin-source/` 的方式与你构建上游 Bitcoin Core 的方式完全一样——标准的 CMake + vcpkg 或系统依赖项,请参见 `bitcoin-source/doc/build-*.md`。 生成的二进制文件分别被命名为 `sharecoind`、`sharecoin-cli`、`sharecoin-qt`(需开启 `BUILD_GUI=ON`)等——与任何 Bitcoin Core 分支的构建过程、使用的参数完全相同,仅仅是重命名了,并且运行的是 ProgPoW/KawPow 而不是 SHA-256d。 **不要传递 `-regtest` 参数。** 活跃的 Sharecoin 网络正是该分支自身真正的 mainnet(`CMainParams`)——它拥有自己的创世区块、自己的共识规则,从第 1 个区块开始就使用 ProgPoW/KawPow 挖矿,与真正的 Bitcoin mainnet 完全不同。直接运行不带任何网络参数的 `sharecoind` 就会正确连接到该网络。`-regtest` 会切换到一条独立的、不兼容的测试链(“sharenet”),该链仅用于本地开发——使用 `-regtest` 启动的钱包或节点将无法看到实时网络、实时余额或实时对等节点,并且会静默地同步一条死分支。本 README 以及 `docs/` 中的所有命令都已经忽略了它;如果你正在根据本文档的旧版本或记忆中的命令进行修改,请不要再把它加回去。 ## 获取钱包地址 运行 `generate_wallet.py`(需执行 `pip install base58 pycryptodome ecdsa`)即可完全离线生成一个真正的 secp256k1 密钥对——无需任何节点或钱包软件。**请保密并备份打印出的私钥**——一旦丢失将无法恢复。 如果你编译了 `sharecoin-qt`,它的操作方式与任何 Bitcoin-Qt 构建一样:创建一个钱包,然后使用 **Receive(接收)** 选项卡直接生成一个地址(或者导入上面生成的密钥——确切的控制台命令请参见 `docs/DETAILS.md`)。 **在 Windows 上**,你不需要为了获取钱包而进行任何编译构建:运行 `wallet/start-wallet.bat`(它会启动预编译的 `sharecoin-qt.exe`)。首次运行时,它会提示你创建一个钱包——接受默认设置即可。一旦打开,转到 **Receive(接收)** 选项卡并点击 **Create new receiving address(创建新的接收地址)**。这样就好了——钱包会替你保管私钥,如果在创建时设置了密码,它就会被加密(在接收任何真实资产前,建议通过 **Settings → Encrypt Wallet(设置 → 加密钱包)** 进行加密)。有关 Windows 路径的其余部分(挖矿、运行你自己的节点),请参阅 [docs/WINDOWS.md](docs/WINDOWS.md)。 ## 挖矿 **你需要真正的 GPU 挖矿软件——本仓库不包含它。** Sharecoin 自己的二进制文件(`sharecoind`/`sharecoin-qt`)负责验证和广播区块,但实际的 GPU 工作量证明计算只在一个独立的、支持 KawPow 的矿工内部进行——该分支实际测试通过的软件是 **kawpowminer**(与 Ravencoin 使用的是同一款)。 **请下载当前的钱包版本,并在挖出任何区块之前让其完全同步。** 旧的钱包版本不仅仅是过时,它还可能是针对过去网络更改之前的创世/链构建的——那条旧链在这个网络上已完全失效,因此针对它进行挖矿,无论你投入多少 GPU 算力,都不会获得任何收益。请从本仓库自己的 Releases 页面获取最新的构建版本,并且不要仅仅因为钱包能打开且看起来正常就跳过上述同步步骤——一个陈旧的构建版本可能看起来运行良好,但实际上却在默默地跟随一条死分支。 **在你信任节点提供的任何信息或开始针对其进行挖矿之前,请务必等待你的节点完成同步。** 一个仍在追赶真实链顶端的节点会显示不完整的余额和缺失的交易,而且如果你是将矿工指向自己的节点而不是矿池,它会分发基于陈旧、过时链顶端构建的挖矿任务——针对该任务找到的区块永远不会被真实网络接受,因此这纯粹是白白浪费 GPU 算力,而不仅仅是不便。**这同样适用于你即将用于接收挖矿收益的全新钱包/地址**——请先创建它并让节点达到确认的同步状态,而不是在生成地址的瞬间就将矿工指向它。使用以下命令检查: ``` sharecoin-cli getblockchaininfo ``` 并确认 `"initialblockdownload"` 为 `false` 且 `"blocks"` 等于 `"headers"`。在这两个条件都满足之前,钱包向你显示的任何内容都还不是真实的全貌。 **无论你的矿工指向何处,你的挖矿奖励都会落在真实的链上**——`kawpowminer` 只是对矿池分发的任何任务进行哈希计算,它并不关心链的历史记录。但如果你另外运行*自己的*钱包/节点来检查或花费该余额,请确保它实际上连接的是当前网络(`sharecoin.duckdns.org:8443`/`10000`),而不是过去网络迁移遗留的旧地址——一个指向已弃用 endpoint 的过时钱包不仅会连接失败,它还可能携带过时的创世区块,并默默地同步一条早已死掉的分支,从而显示永久为零的余额,尽管你真实的奖励完好无损地存放在实际的活跃链上。 请从 [RavenCommunity/kawpowminer 的 GitHub Releases](https://github.com/RavenCommunity/kawpowminer/releases) 获取该软件(Linux:支持 Ubuntu 18/20 构建版本,CUDA 或 OpenCL)——使用其发布的 `.sha256sum` 校验下载文件,然后将其指向活跃的 Sharecoin 网络: ``` ./kawpowminer -P stratum+tcp://YOUR_ADDRESS.worker1@sharecoin.duckdns.org:10000 --cu-schedule spin --cu-parallel-hash 8 --cu-streams 4 --display-interval 2 ``` 该地址背后设有自动故障转移机制,因此如果当前提供服务的机器宕机,你无需进行任何操作或更改任何地址;矿工软件会在不到一分钟的时间内自行重新连接。有关其工作原理,请参阅 `docs/DETAILS.md`。 有关运行你自己的节点/网络/Stratum proxy(而不是加入上述那个),以及在低难度下的 GPU 批次大小异常情况,请参阅 `docs/DETAILS.md`。 ## 随机性 beacon `getrandombeacon start_height (window_size)` 是一个源自已确认区块的公共、可验证随机性来源,旨在抵御单个区块自身的 `mix_hash` 可能带有的“最后揭示者”偏见。有关完整的设计原理,请参见 `docs/DETAILS.md`,或者查阅 [WHITEPAPER.pdf](WHITEPAPER.pdf) 获取正式的书面说明。 **在线演示**:[sharecoin-pi.tail0b8084.ts.net/raffle](https://sharecoin-pi.tail0b8084.ts.net/raffle) 针对实时网络运行了一个真实的抽奖活动——锁定参与者名单,选择一个未来的区块高度,然后观察一旦该区块被挖出,获胜者是如何从该区块实际的 beacon 值中被抽出的。任何人都可以根据页面上显示的数字自行验证结果。 **区块链浏览器** - https://sharecoin.duckdns.org/explorer/ ## 许可证 MIT,请参见 [LICENSE](LICENSE)。根据其许可证要求,Bitcoin Core 自身的版权在整个代码库中均得到保留,与此分支自身所做的更改并列。 ## 已知限制 请参见 `docs/DETAILS.md`。
标签:Bash脚本, C++, ProgPoW, 加密货币, 区块链, 数据擦除, 显卡挖矿, 比特币, 逆向工具