Crypto quant trader
加密货币量化系列之一:下载加密货币数据并交易
本文以Python为例,展示如何从全球最大的加密货币交易所「币安(Binance)」交易所下载加密货币的历史数据,并交易加密货币期货的方法,为此后加密货币的量化交易提供数据基础。步骤一:搭建Python开发环境Anaconda是包管理器和环境管理器,它附带了 conda、Python 和 150 多个科学包及其依赖项,因此对Python开发者非常友好。建议大家前往下面的官方网站进行下载: https://www.anaconda.com/步骤二:安装开发量化策略所需的Python包除了常用的一些Python包(pandas,numpy等),ccxt(https://github.com/ccxt/ccxt)是一个非常常用的加密货币量化包,它是一个开源的数字货币交易框架,连接了全球几乎所有的交易所,为用户提供了市场数据访问、算法交易等功能。初次使用前需要啊下载该工具包,方法如下:步骤三:下载交易所历史数据步骤三a:连接交易所,下载并处理数据ccxt下载成功后,可以使用如下方法连接交易所:import ccxt exchange = ccxt.binance() #连接币安 使用fe...
链上数据知多少系列之一:如何获得链上数据
链上数据之于区块链,就像基本面数据之于股票市场,是做加密资产量化时绕不开的信息,它可以成为因子策略中的重要因子。 链上数据泛指所有发生在区块链上的交易信息。区块链本质上是一个公开的分布式数据库,所有的链上交易都会被保存,具有公开透明、不可篡改等特点。因此,链上数据不可造假,公开透明。 本文将简要介绍主要有哪些链上数据提供商,并以Glassnode为例展示如何使用Python下载数据,并以「活跃地址交易调整后价格」指标为例展示链上数据的作用。一、链上数据提供商一览Galaxy Research区块链的数据提供商可以分成以下三类: 一是区块浏览器,包括Etherscan、Zapper等,主要是用来帮助用户更方便地浏览交易和账户信息(下图)。Etherscan二是链上数据服务商,包括 Glassnode,Coin Metrics,IntoTheBlock、Nansen,Token Terminal 等,主要对链上数据进行分析整合和分析。本文将简要介绍如何使用 Python 从 Glassnode 免费下载链上数据。 三是链上基建,包括Chainalysis,Infura等,包括以反洗钱...
加密货币量化系列之一:下载加密货币数据并交易
本文以Python为例,展示如何从全球最大的加密货币交易所「币安(Binance)」交易所下载加密货币的历史数据,并交易加密货币期货的方法,为此后加密货币的量化交易提供数据基础。步骤一:搭建Python开发环境Anaconda是包管理器和环境管理器,它附带了 conda、Python 和 150 多个科学包及其依赖项,因此对Python开发者非常友好。建议大家前往下面的官方网站进行下载: https://www.anaconda.com/步骤二:安装开发量化策略所需的Python包除了常用的一些Python包(pandas,numpy等),ccxt(https://github.com/ccxt/ccxt)是一个非常常用的加密货币量化包,它是一个开源的数字货币交易框架,连接了全球几乎所有的交易所,为用户提供了市场数据访问、算法交易等功能。初次使用前需要啊下载该工具包,方法如下:步骤三:下载交易所历史数据步骤三a:连接交易所,下载并处理数据ccxt下载成功后,可以使用如下方法连接交易所:import ccxt exchange = ccxt.binance() #连接币安 使用fe...
链上数据知多少系列之一:如何获得链上数据
链上数据之于区块链,就像基本面数据之于股票市场,是做加密资产量化时绕不开的信息,它可以成为因子策略中的重要因子。 链上数据泛指所有发生在区块链上的交易信息。区块链本质上是一个公开的分布式数据库,所有的链上交易都会被保存,具有公开透明、不可篡改等特点。因此,链上数据不可造假,公开透明。 本文将简要介绍主要有哪些链上数据提供商,并以Glassnode为例展示如何使用Python下载数据,并以「活跃地址交易调整后价格」指标为例展示链上数据的作用。一、链上数据提供商一览Galaxy Research区块链的数据提供商可以分成以下三类: 一是区块浏览器,包括Etherscan、Zapper等,主要是用来帮助用户更方便地浏览交易和账户信息(下图)。Etherscan二是链上数据服务商,包括 Glassnode,Coin Metrics,IntoTheBlock、Nansen,Token Terminal 等,主要对链上数据进行分析整合和分析。本文将简要介绍如何使用 Python 从 Glassnode 免费下载链上数据。 三是链上基建,包括Chainalysis,Infura等,包括以反洗钱...
Crypto quant trader
Subscribe to Trader Li
Subscribe to Trader Li
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
本文将演示如何通过质押以太坊,成为验证节点。
在上一篇文章(链接如下),介绍了如何运行以太坊的执行和共识节点。第一次运行时,通常节点同步要等待2-3天时间(共识链和执行层需要分别进行同步,但最慢的是共识层),这是由于共识层客户端需要从第一个区块开始重新验证和同步。
为了加快共识层的同步速度,可以选择使用checkpoint sync,即选择受信任的别的信标链最新确认区块开始同步,并假设此前的所有区块已经被验证:
https://mirror.xyz/0x89912c3449006F0Db8a1E051f3b9fc87ea435330
添加checkpoint sync的方法也很简单,只要重新运行./prysm.sh,并添加两个额外参数,如果是goerli(prater)的话:
--checkpoint-sync-url=https://goerli.checkpoint-sync.ethpandaops.io
--genesis-beacon-api-url=https://goerli.checkpoint-sync.ethpandaops.io
上面的checkpoint sync节点来自:
https://notes.ethereum.org/@launchpad/checkpoint-sync
更多的checkpoints,包括主网的可以选择下面的节点:
https://eth-clients.github.io/checkpoint-sync-endpoints/#goerli
了解更多checkpoint sync的细节可以看这篇文章:
https://docs.prylabs.network/docs/prysm-usage/checkpoint-sync
首先,可以通过Goerli Beacon Chain网站查看最新的slot:

再去查看运行prysm的日志:
tail -n 100 /home/master/ethereum/log/prysm.txt

可以看到slot是匹配的,因此证明节点已经完成了同步。
输入以下命令查询geth是否完成同步
geth attach http://127.0.0.1:8545
eth.syncing
如果返回的是false,则表示同步完成;true则表示仍在同步,同步尚未完成。
通常执行层同步需要几个小时时间,主网大概同步完会有600多G (通过在linux输入df -h 可以查看),通过打印geth.txt的log可以查看最新的同步到了哪个区块:
输入命令:
tail -n 100 geth.txt

number=15714797,而etherscan.io 网站上显示的最新区块为:

两者数字接近,就表示已经同步完成了。
要想质押以太币成为验证节点,需要准备至少32个以太币。测试网的以太币可以前往@ethstaker的discord获得(下面的链接):
首先,需要进行真人验证(注意,这里不是实名认证)。用户可以下载BrightID 软件并注册(图片、名字都可以是假的),然后前往discord 的 #testnet下面随便一个频道,输入 /verify 查询具体真人验证的流程。
用户需要通过参加BrightID的 zoom meeting来获得验证(下面的链接)。整个流程大概需要花费10分钟左右时间。
在BrightID获得验证后,返回discord,并扫描BrightID Bot提供的二维码即可绑定discord账号,之后前往 #request-goerli-eth 频道,手动输入命令:
/request-goeth <钱包地址>
几乎是在瞬间机器人便会发起32个以太币的转账交易。
用户可以用以下方法安装以太坊质押客户端Ethereum Staking CLI:
https://github.com/ethereum/staking-deposit-cli
通常,用户只需要使用wget下载对应安装包,再解压即可(参考上一篇文章中安装geth的方法)。
wget https://github.com/ethereum/staking-deposit-cli/releases/download/v2.3.0/staking_deposit-cli-76ed782-linux-amd64.tar.gz
tar -xvf staking_deposit-cli-76ed782-linux-amd64.tar.gz
cd staking-deposit-cli-2.3.0
./deposit new-mnemonic --num_validators=1 --mnemonic_language=english --chain=prater
也可以使用docker进行安装以太坊质押客户端,其中--network host . 和--net=host 是用来防止docker的虚拟网络无法连接网络的问题。
wget https://github.com/ethereum/staking-deposit-cli/archive/refs/tags/v2.3.0.tar.gz
tar -xvf v2.3.0.tar.gz
cd staking-deposit-cli-2.3.0
docker build -t ethereum/staking-deposit-cli --network host .
docker run -it --rm --net=host -v $(pwd)/validator_keys:/app/validator_keys ethereum/staking-deposit-cli new-mnemonic --num_validators=1 --mnemonic_language=english --chain=prater
跟随页面进行操作,之后会生成助记词,注意这里一定要好好保存!
此外,命令还会生成 validator_keys 文件夹,文件夹里包括:
deposit_data-.json - 包含存储数据,之后要上传到Ethereum launchpad
keystore-m_.json - 包含公钥和加密后的私钥
首先,将validator_keys 文件夹移动到consensus文件夹下:
cp -r validator_keys /home/master/ethereum/consensus/
再将钥匙保存到共识层客户端中,方法是输入以下指令。其中,--keys-dir 是 consensus/validator_keys 的完整路径。
./prysm.sh validator accounts import --keys-dir=/home/master/ethereum/consensus/validator_keys --prater
在跟随操作的步骤中,选择将钱包地址的路径保存在:/home/master/ethereum/consensus
如果一切顺利,会收到导入成功的消息:
Successfully imported 1 accounts, view all of them by running
accounts list
检查导入了的验证者节点钱包信息可以输入以下指令:
./prysm.sh validator accounts list --wallet-dir=/home/master/ethereum/consensus
之后,前往以太坊的launchpad网站质押以太币。按照上面的步骤,最终将deposit_data-*.json 文件上传,并绑定存有32个测试网以太坊的MetaMask,并将32个以太币进行质押。
https://launchpad.ethereum.org/en/upload-deposit-data
https://goerli.launchpad.ethereum.org/en/upload-deposit-data
这时,网站会告诉你需要等待 16-24小时。之所以要等这么长时间,是为了确保32以太币质押被信标链最终确认,完整介绍可以查看下面的网址:
https://kb.beaconcha.in/ethereum-2.0-depositing

输入以下命令运行节点,其中 是consensus文件夹的完整路径,这里假设是 /home/master/ethereum/consensus。 --wallet-password-file 字段则保存了钱包密码,这里假设密码保存在 /home/master/ethereum/consensus/wallet_pwd.txt,使用该命令行可以避免使用tmux指令(本文末尾)。 cd /home/master/ethereum/consensus ./prysm.sh validator --wallet-dir=<YOUR_FOLDER_PATH> --suggested-fee-recipient=<接收质押收益的钱包地址> --wallet-password-file=/home/master/ethereum/consensus/wallet_pwd.txt --prater 如果没有报错,可以调整至后台持续运行: 以nohup命令为例,将日志保存在log文件夹下面:: nohup ./prysm.sh validator --wallet-dir=<YOUR_FOLDER_PATH> --suggested-fee-recipient=<接收质押收益的钱包地址> --wallet-password-file=/home/master/ethereum/consensus/wallet_pwd.txt --prater > /home/master/ethereum/log/validator.txt 2>&1 & 将质押获得收益的钱包地址输入prysm beacon-chain的命令中: 重新运行./prysm.sh beacon-chain 的命令行,并增加以下字段: --suggested-fee-recipient=<接收质押收益的钱包地址> 至此,用户已经已经完成了以太坊测试网的验证节点,并可以生成区块和获得奖励! 下一篇文章,将介绍如何更好地监测节点运行状况。 以下部分可以暂时忽略: =============================================== 为了确保prysm保持运行,可以使用tmux。tmux是一个终端复用软件,用户即便关闭了窗口,也能让程序一直运行,当用户重新登录时,也能查看进程。 CentOS 系统需要首先安装: yum install tmux 之后,新开一个终端并取名为eth tmux new -s eth 前往consensus文件夹,并运行一遍之前的命令行以启动验证节点,并输入钱包地址。 如果想要关闭当前的窗口,可以输入ctrl +b,然后输入d即可。 如果想要查看所有终端的运行情况,可以新开一个窗口并输入: tmux ls 如果想返回特定终端,可以使用attach命令行 tmux attach -t eth 如果要停止运行这个终端 tmux kill-session -t session-name 完整的tmux使用手册可以查看: http://louiszhai.github.io/2017/09/30/tmux/ ===============================================
本文将演示如何通过质押以太坊,成为验证节点。
在上一篇文章(链接如下),介绍了如何运行以太坊的执行和共识节点。第一次运行时,通常节点同步要等待2-3天时间(共识链和执行层需要分别进行同步,但最慢的是共识层),这是由于共识层客户端需要从第一个区块开始重新验证和同步。
为了加快共识层的同步速度,可以选择使用checkpoint sync,即选择受信任的别的信标链最新确认区块开始同步,并假设此前的所有区块已经被验证:
https://mirror.xyz/0x89912c3449006F0Db8a1E051f3b9fc87ea435330
添加checkpoint sync的方法也很简单,只要重新运行./prysm.sh,并添加两个额外参数,如果是goerli(prater)的话:
--checkpoint-sync-url=https://goerli.checkpoint-sync.ethpandaops.io
--genesis-beacon-api-url=https://goerli.checkpoint-sync.ethpandaops.io
上面的checkpoint sync节点来自:
https://notes.ethereum.org/@launchpad/checkpoint-sync
更多的checkpoints,包括主网的可以选择下面的节点:
https://eth-clients.github.io/checkpoint-sync-endpoints/#goerli
了解更多checkpoint sync的细节可以看这篇文章:
https://docs.prylabs.network/docs/prysm-usage/checkpoint-sync
首先,可以通过Goerli Beacon Chain网站查看最新的slot:

再去查看运行prysm的日志:
tail -n 100 /home/master/ethereum/log/prysm.txt

可以看到slot是匹配的,因此证明节点已经完成了同步。
输入以下命令查询geth是否完成同步
geth attach http://127.0.0.1:8545
eth.syncing
如果返回的是false,则表示同步完成;true则表示仍在同步,同步尚未完成。
通常执行层同步需要几个小时时间,主网大概同步完会有600多G (通过在linux输入df -h 可以查看),通过打印geth.txt的log可以查看最新的同步到了哪个区块:
输入命令:
tail -n 100 geth.txt

number=15714797,而etherscan.io 网站上显示的最新区块为:

两者数字接近,就表示已经同步完成了。
要想质押以太币成为验证节点,需要准备至少32个以太币。测试网的以太币可以前往@ethstaker的discord获得(下面的链接):
首先,需要进行真人验证(注意,这里不是实名认证)。用户可以下载BrightID 软件并注册(图片、名字都可以是假的),然后前往discord 的 #testnet下面随便一个频道,输入 /verify 查询具体真人验证的流程。
用户需要通过参加BrightID的 zoom meeting来获得验证(下面的链接)。整个流程大概需要花费10分钟左右时间。
在BrightID获得验证后,返回discord,并扫描BrightID Bot提供的二维码即可绑定discord账号,之后前往 #request-goerli-eth 频道,手动输入命令:
/request-goeth <钱包地址>
几乎是在瞬间机器人便会发起32个以太币的转账交易。
用户可以用以下方法安装以太坊质押客户端Ethereum Staking CLI:
https://github.com/ethereum/staking-deposit-cli
通常,用户只需要使用wget下载对应安装包,再解压即可(参考上一篇文章中安装geth的方法)。
wget https://github.com/ethereum/staking-deposit-cli/releases/download/v2.3.0/staking_deposit-cli-76ed782-linux-amd64.tar.gz
tar -xvf staking_deposit-cli-76ed782-linux-amd64.tar.gz
cd staking-deposit-cli-2.3.0
./deposit new-mnemonic --num_validators=1 --mnemonic_language=english --chain=prater
也可以使用docker进行安装以太坊质押客户端,其中--network host . 和--net=host 是用来防止docker的虚拟网络无法连接网络的问题。
wget https://github.com/ethereum/staking-deposit-cli/archive/refs/tags/v2.3.0.tar.gz
tar -xvf v2.3.0.tar.gz
cd staking-deposit-cli-2.3.0
docker build -t ethereum/staking-deposit-cli --network host .
docker run -it --rm --net=host -v $(pwd)/validator_keys:/app/validator_keys ethereum/staking-deposit-cli new-mnemonic --num_validators=1 --mnemonic_language=english --chain=prater
跟随页面进行操作,之后会生成助记词,注意这里一定要好好保存!
此外,命令还会生成 validator_keys 文件夹,文件夹里包括:
deposit_data-.json - 包含存储数据,之后要上传到Ethereum launchpad
keystore-m_.json - 包含公钥和加密后的私钥
首先,将validator_keys 文件夹移动到consensus文件夹下:
cp -r validator_keys /home/master/ethereum/consensus/
再将钥匙保存到共识层客户端中,方法是输入以下指令。其中,--keys-dir 是 consensus/validator_keys 的完整路径。
./prysm.sh validator accounts import --keys-dir=/home/master/ethereum/consensus/validator_keys --prater
在跟随操作的步骤中,选择将钱包地址的路径保存在:/home/master/ethereum/consensus
如果一切顺利,会收到导入成功的消息:
Successfully imported 1 accounts, view all of them by running
accounts list
检查导入了的验证者节点钱包信息可以输入以下指令:
./prysm.sh validator accounts list --wallet-dir=/home/master/ethereum/consensus
之后,前往以太坊的launchpad网站质押以太币。按照上面的步骤,最终将deposit_data-*.json 文件上传,并绑定存有32个测试网以太坊的MetaMask,并将32个以太币进行质押。
https://launchpad.ethereum.org/en/upload-deposit-data
https://goerli.launchpad.ethereum.org/en/upload-deposit-data
这时,网站会告诉你需要等待 16-24小时。之所以要等这么长时间,是为了确保32以太币质押被信标链最终确认,完整介绍可以查看下面的网址:
https://kb.beaconcha.in/ethereum-2.0-depositing

输入以下命令运行节点,其中 是consensus文件夹的完整路径,这里假设是 /home/master/ethereum/consensus。 --wallet-password-file 字段则保存了钱包密码,这里假设密码保存在 /home/master/ethereum/consensus/wallet_pwd.txt,使用该命令行可以避免使用tmux指令(本文末尾)。 cd /home/master/ethereum/consensus ./prysm.sh validator --wallet-dir=<YOUR_FOLDER_PATH> --suggested-fee-recipient=<接收质押收益的钱包地址> --wallet-password-file=/home/master/ethereum/consensus/wallet_pwd.txt --prater 如果没有报错,可以调整至后台持续运行: 以nohup命令为例,将日志保存在log文件夹下面:: nohup ./prysm.sh validator --wallet-dir=<YOUR_FOLDER_PATH> --suggested-fee-recipient=<接收质押收益的钱包地址> --wallet-password-file=/home/master/ethereum/consensus/wallet_pwd.txt --prater > /home/master/ethereum/log/validator.txt 2>&1 & 将质押获得收益的钱包地址输入prysm beacon-chain的命令中: 重新运行./prysm.sh beacon-chain 的命令行,并增加以下字段: --suggested-fee-recipient=<接收质押收益的钱包地址> 至此,用户已经已经完成了以太坊测试网的验证节点,并可以生成区块和获得奖励! 下一篇文章,将介绍如何更好地监测节点运行状况。 以下部分可以暂时忽略: =============================================== 为了确保prysm保持运行,可以使用tmux。tmux是一个终端复用软件,用户即便关闭了窗口,也能让程序一直运行,当用户重新登录时,也能查看进程。 CentOS 系统需要首先安装: yum install tmux 之后,新开一个终端并取名为eth tmux new -s eth 前往consensus文件夹,并运行一遍之前的命令行以启动验证节点,并输入钱包地址。 如果想要关闭当前的窗口,可以输入ctrl +b,然后输入d即可。 如果想要查看所有终端的运行情况,可以新开一个窗口并输入: tmux ls 如果想返回特定终端,可以使用attach命令行 tmux attach -t eth 如果要停止运行这个终端 tmux kill-session -t session-name 完整的tmux使用手册可以查看: http://louiszhai.github.io/2017/09/30/tmux/ ===============================================
No activity yet