康斯坦丁堡分叉(Constantinople Fork)
~~~
WARN [03-01|11:17:41] Synchronisation failed, dropping peer peer=68677387327cf808
? ? ? ? ? ? ? ? ? ? err="retrieved hash chain is invalid"
ERROR[03-01|11:17:58]
########## BAD BLOCK #########
Chain config: {ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000
? ? ? ? ? ? ? EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000
? ? ? ? ? ? ? Constantinople: <nil> Engine: ethash}
?
Number: 7280000
Hash: 0xeddb0590e1095fbe51205a51a297daef7259e229af0432214ae6cb2c1f750750
?
?
Error: invalid difficulty: have 2957101900364072, want 2958201410943272
##############################
~~~
#### 故障原因
這是因為使用的Geth版本不支持康斯坦丁堡分叉(Constantinople Fork),例如上面錯誤日志 中的`Constantinople: <nil>`;或者雖然使用了支持康斯坦丁堡分叉的新版本Geth,但本地 區塊鏈中包含了舊版本產生的區塊,從而導致同步失敗。
#### 解決方案
如果使用的不是最新版本的Geth,那么可以升級到最新的穩定版本。官網下載地址:[Geth Releases](https://github.com/ethereum/go-ethereum/releases)。
如果Geth已經升級到最新版本,啟動后還是出現`invalid difficulty`錯誤,那么可以 讓Geth運行一會進行本地區塊的重組,或者清空本地的區塊鏈數據從頭重新同步。
以太坊繆爾冰川硬分叉
~~~
ERROR[01-11|16:05:18.296]
########## BAD BLOCK #########
Chain config: {ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 Constantinople: 7280000 Petersburg: 7280000 Istanbul: 9069000 Engine: ethash}
?
Number: 9200000
Hash: 0x6ba9486095de7d96a75b67954cfe2581234eae1ef2a92ab03b84fc2eae2deb8a
?
Error: invalid difficulty: have 2458589766091800, want 2459689277719575
##############################
?
WARN [01-11|16:05:18.298] Synchronisation failed, dropping peer ? peer=1ae58a69aae79bd2 err="retrieved hash chain is invalid"
~~~
#### 解決方案
升級geth客戶端到1.9.9
官網下載地址:[https://geth.ethereum.org/downloads/](https://geth.ethereum.org/downloads/)
geth下載地址:[https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.9.9-01744997.tar.gz](https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.9.9-01744997.tar.gz)
下載玩后校驗MD5是否一致:md5sum geth-linux-amd64-1.9.9-01744997.tar.gz
ETC Core 舉行開發者電話會議確定 Agharta 硬分叉高度為 9573000,預計在 2020 年 1 月 15 日進行
- Linux
- linux常用命令
- awk
- cp
- scp
- mv
- screen工具
- rsync
- Linux設置靜態IP
- vim常用
- ssh免密登錄
- linux掛載磁盤和開機自動掛載
- 文件的時間戳
- 重定向
- 防火墻
- Vultr 服務器利用快照更換IP
- ss
- node-yarn
- ES安裝向導
- lnmp/lamp
- windows安裝mysql
- windows安裝nginx
- Let'sEncrypt 免費通配符/泛域名SSL證書
- 開機自動掛載硬盤
- 普通用戶提權
- ELK日志分析系統
- Docker
- docker
- centos7安裝docker
- Centos7安裝redis
- CentOS 7 使用Docker搭建Nginx
- CentOS 7 使用Docker搭建Jenkins
- CentOS 7 使用Docker搭建Zookeeper
- CentOS 7 使用Docker搭建Tomcat
- CentOS 7 使用Docker搭建Mysql
- CentOS 7 使用Docker搭建PHP環境
- 使用docker搭建Swagger
- docker阿里云私有倉庫
- docker zookeeper集群
- docker部署ES
- docker之java容器運行外置springboot-jar
- docker部署owncloud云盤
- ETCD
- centos7部署etcd節點
- Dockerfile
- Docker-compose
- gitlab.yml
- db.yml
- 安裝docker-compose
- gitlab-docker-compose.yml
- nginx-docker-compose.yml
- Mysql
- mysql開啟遠程訪問及相關權限控制
- mysql授權
- mysql快速導出導入大數據
- mysql單機備份
- binlog日志
- shell
- 經典案例
- 俄羅斯方塊游戲
- 系統初始化
- 服務器監控
- go基礎環境
- shell.監控日志.elk
- shell.檢查各服務腳本
- shell.刪除文件腳本
- shell.守護進程
- shell.數據庫
- shell.Ansible
- shell.dev
- shell.ftp環境
- shell.docker環境
- shell.k8s環境
- k8s.二進制安裝
- K8s.一主多從
- k8s.三主兩從高可用
- k8s.檢查服務與配置
- k8s.jenkins
- k8s.gitlab
- go-install.sh
- jenkins-install.sh
- node-install.sh
- redis-install.sh
- zabbix-install.sh
- zabbix-dockerfile.sh
- nginx-install.sh
- shell變量
- 用戶自定義變量
- 環境變量
- shell特殊變量
- shell條件判斷
- 流程控制
- shell運算符
- Shell _printf
- shell_test
- shell函數
- 輸出重定向
- 網絡相關
- 安全相關
- 堡壘機部署
- 區塊鏈威脅情報共享平臺
- 簽名與驗簽
- 淺談區塊鏈
- 智能合約
- 黃金幣GTF智能合約
- 節點
- 以太坊公鏈私鏈geth同步
- 比特節點同步
- BTC節點錯誤解決方法
- eth硬分叉
- omni錢包節點搭建
- 架構
- K8s
- 搭建k8s集群完整篇
- 二進制部署k8s
- Devops
- git
- Jenkins
- svn
- 禪道
- CI/CD
- docker+jenkins+golang持續集成持續交付(CI/CD)
- 項目部署
- config.env
- docker-compose.yml
- Dockerfile模板
- .dockerignore
- run.sh
- nginx.conf模板
- 跨域
- jenkins配置
- 測試
- Python