spesmilo/electrum

GitHub: spesmilo/electrum

一款轻量级比特币钱包客户端,通过SPV机制实现快速同步,支持硬件钱包集成、多重签名和冷存储。

Stars: 8412 | Forks: 3411

# Electrum - 轻量级比特币客户端 ``` Licence: MIT Licence Author: Thomas Voegtlin Language: Python (>= 3.10) Homepage: https://electrum.org/ ``` [![构建状态](https://api.cirrus-ci.com/github/spesmilo/electrum.svg?branch=master)](https://cirrus-ci.com/github/spesmilo/electrum) [![测试覆盖率统计](https://coveralls.io/repos/github/spesmilo/electrum/badge.svg?branch=master)](https://coveralls.io/github/spesmilo/electrum?branch=master) [![帮助在线翻译 Electrum](https://d322cqt584bo4o.cloudfront.net/electrum/localized.svg)](https://crowdin.com/project/electrum) ## 入门指南 _(如果您来到这里只是为了运行 Electrum, [可以在这里下载](https://electrum.org/#download)。)_ Electrum 本身是纯 Python 编写的,大多数必需的依赖项也是如此, 但并非全部。以下部分描述了如何从源代码运行,但这里是 TL;DR(太长不看版): ``` $ sudo apt-get install libsecp256k1-dev $ ELECTRUM_ECC_DONT_COMPILE=1 python3 -m pip install --user ".[gui,crypto]" ``` ### 非 pure-python 依赖项 #### Qt GUI 如果您想使用 Qt 界面,请安装 Qt 依赖项: ``` $ sudo apt-get install python3-pyqt6 ``` #### libsecp256k1 对于椭圆曲线运算, [libsecp256k1](https://github.com/bitcoin-core/secp256k1) 是一个必需的依赖项。 如果您通过 "pip install" 安装 Electrum,默认情况下 libsecp 会在本地编译, 作为 `electrum-ecc` 依赖项的一部分。可以通过设置 `ELECTRUM_ECC_DONT_COMPILE=1` 环境变量来选择退出此操作。 为了使编译正常工作,除了 C 编译器之外,您至少需要: ``` $ sudo apt-get install automake libtool ``` 如果您选择退出编译,则需要通过其他方式提供 libsecp,例如: ``` $ sudo apt-get install libsecp256k1-dev ``` #### cryptography 由于需要快速对称加密, [cryptography](https://github.com/pyca/cryptography) 是必需的。 从您的包管理器(或 pip)安装: ``` $ sudo apt-get install python3-cryptography ``` #### hardware-wallet 支持 如果您希望获得硬件钱包支持, [请参阅此链接](https://github.com/spesmilo/electrum-docs/blob/master/hardware-linux.rst)。 ### 从 tar.gz 运行 如果您下载了官方软件包 (tar.gz),您可以在不将其安装到系统上的情况下 从其根目录运行 Electrum;所有纯 Python 依赖项都包含在 'packages' 目录中。要从其根目录运行 Electrum,只需执行: ``` $ ./run_electrum ``` 您也可以通过运行以下命令将 Electrum 安装到您的系统上: ``` $ sudo apt-get install python3-setuptools python3-pip $ python3 -m pip install --user . ``` 这将下载并安装 Electrum 使用的 Python 依赖项, 而不是使用 'packages' 目录。 它还会在 `~/.local/bin` 中放置一个名为 `electrum` 的可执行文件, 因此请确保该路径位于您的 `PATH` 变量中。 ### 开发版本 (git clone) _(针对特定操作系统的说明,请参阅 [此处针对 Windows](contrib/build-wine/README_windows.md), 以及 [针对 macOS](contrib/osx/README_macos.md))_ 从 GitHub 检出代码: ``` $ git clone https://github.com/spesmilo/electrum.git $ cd electrum $ git submodule update --init ``` 运行安装(这应该会安装依赖项): ``` $ python3 -m pip install --user -e . ``` 创建翻译(可选): ``` $ sudo apt-get install gettext $ ./contrib/locale/build_locale.sh electrum/locale/locale electrum/locale/locale ``` 最后,启动 Electrum: ``` $ ./run_electrum ``` ### 运行测试 使用 `pytest` 运行单元测试: ``` $ pytest tests -v ``` (可以使用 `-n auto` 选项通过 [`pytest-xdist`](https://github.com/pytest-dev/pytest-xdist) 插件进行并行化) 要运行单个文件,直接像这样指定它: ``` $ pytest tests/test_bitcoin.py -v ``` ## 创建二进制文件 - [Linux (tarball)](contrib/build-linux/sdist/README.md) - [Linux (AppImage)](contrib/build-linux/appimage/README.md) - [macOS](contrib/osx/README.md) - [Windows](contrib/build-wine/README.md) - [Android](contrib/android/Readme.md) ## 贡献 非常欢迎任何帮助测试软件、报告或修复错误、审查拉取请求 和近期更改、编写测试或协助解决未决问题的贡献。 当然,也欢迎实现新功能或改进/重构代码库,但为了避免浪费精力, 特别是对于较大的更改,我们鼓励先在问题跟踪器或 IRC 上进行讨论。 除了 [GitHub](https://github.com/spesmilo/electrum) 之外, 关于 Electrum 开发的大部分交流都在 IRC 上进行,位于 Libera Chat 的 `#electrum` 频道。参与 IRC 最简单的方式是 使用 Web 客户端 [web.libera.chat](https://web.libera.chat/#electrum)。 请在 [Crowdin](https://crowdin.com/project/electrum) 上改进翻译。
标签:Electrum, IP 地址批量处理, MIT许可, PyQt6, Python, Qt GUI, secp256k1, SPV验证, 冷存储, 加密货币, 区块链, 密码学, 手动系统调用, 支付工具, 数字货币, 数字资产, 无后门, 椭圆曲线加密, 比特币钱包, 轻量级客户端, 逆向工具, 金融科技