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://cirrus-ci.com/github/spesmilo/electrum)
[](https://coveralls.io/github/spesmilo/electrum?branch=master)
[](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验证, 冷存储, 加密货币, 区块链, 密码学, 手动系统调用, 支付工具, 数字货币, 数字资产, 无后门, 椭圆曲线加密, 比特币钱包, 轻量级客户端, 逆向工具, 金融科技