惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
H
Help Net Security
雷峰网
雷峰网
V
Visual Studio Blog
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
IT之家
IT之家
Engineering at Meta
Engineering at Meta
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
月光博客
月光博客
A
About on SuperTechFans
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale

Nic Lin's Blog

謝明真 - 高效領導力的課後筆記 NFT 開發實戰!基礎智能合約入門 (3) NFT 開發實戰!基礎智能合約入門 (2) NFT 開發實戰!基礎智能合約入門 (1) 如何自我檢測 log4j CVE 漏洞 Rails 如何在資料寫入時記錄來源 IP 位置 如何經營工程師 Youtube 頻道 - Part 8 營收篇 如何經營工程師 Youtube 頻道 - Part 7 酸民文化篇 如何經營工程師 Youtube 頻道 - Part 5 設備器材篇 如何經營工程師 Youtube 頻道 - Part 4 後製剪輯篇 如何經營工程師 Youtube 頻道 - Part 3 文案企劃篇 如何經營工程師 Youtube 頻道 - Part 2 設備器材篇 如何經營工程師 Youtube 頻道 - Part 1 制訂頻道方向篇 如何經營工程師 Youtube 頻道 - Part 0 Rails 中避免 race condition 的最佳實踐(二) Rails 中避免 race condition 的最佳實踐(一) 10 分鐘整合 google sheet 做自動化開發功能週報 經營 Side Project 300 天所帶來的收穫及挑戰 我的 Youtube 影片製作流程 API 設計時必須注意的 HTTP header 底線問題 如何提升你的程式可讀性之實務技巧(三) 如何提升你的程式可讀性之實務技巧(二) 如何提升你的程式可讀性之實務技巧(一) Ruby 中使用 freeze 優化效能的時機 避免 React 中的 useEffect 無限 render 在 Rails 內輕量使用 Vue Component 的最佳實踐 如何在區域網路用 Docker 架設有 SSL 的 Gitlab 從被問到問人,那些我常問的面試問題 [Rails] 如何漂亮寫出可維護的 query (Maintainable Rails Query) 在已知長度情況下優化 slice 的性能
加速建造開發環境,用 Docker 建立 Bitcoin 私鏈
Nic Lin · 2018-08-19 · via Nic Lin's Blog

開發時同步全節點太慢了,用 Docker 建立私有鏈更省時間。

一般在開發比特幣相關業務的情況下,會需要能夠跟 RPC server 溝通的需求,如果我們跑主鏈或是 testnet,同步全節點都要花上不少時間,在節點還沒同步完全以前,可能沒辦法準確的知道比方說 address 裡面的餘額之類。

但如果自己在本地掛個私有鏈起來,先搞定 RPC 之間的溝通或監聽,會是更有效率的作法。

Step 1: 安裝 Docker

載點:https://www.docker.com/products/docker-toolbox

Docker 只要安裝過之後,就可以在本地跑起 linux 的虛擬機。

# 檢查是否成功安裝
docker -v

# Docker version 18.06.0-ce, build 0ffa825

Step 2: Pull bitcoind Testnet docker 鏡像

我自己是用 https://github.com/freewil/bitcoin-testnet-box

docker pull freewil/bitcoin-testnet-box

Step 3: Run docker container

docker run -it -p 19001:19001 -p 19011:19011 freewil/bitcoin-testnet-box

這個鏡像會建立兩個比特幣網路的節點。

節點 1 會監聽端口 19000, 節點 2 通過該端口連接節點 1,因為兩個節點都位於同一個機器,所以節點 2 不能監聽同一個端口。

節點 1 的JSON-RPC服務器端口是19001,節點 2 的JSON-RPC服務器端口是19011。

在 Dokcer 容器內輸入 make start 後,可以看到啟動訊息

tester@e396f50cd510 ~/bitcoin-testnet-box$ make start
bitcoind -datadir=1  -daemon
Bitcoin server starting
bitcoind -datadir=2  -daemon
Bitcoin server starting

這時候我們打開瀏覽器測試,無論是輸入 localhost:19001 或是 localhost:19011

都會看到

JSONRPC server handles only POST requests

那麼說明 RPC server 已經在本地啟動成功了,可以嘗試其他的 bitcoin api call

我另外 fork 的個人需求版

  • 我改了端口為 18332 + 19011
  • 容器啟動時自動啟動 bitcoin 網路,不需在手動輸入 make start
  • 修改 RPC 連線的 user & password

可以嘗試

docker run -t -i -p 18332:18332 -p 19011:19011 niclin/bitcoin-testnet-box

詳細請看 niclin/bitcoin-testnet-box