架設Monero獨立節點教學

本篇文章將帶領你建架設獨立的完整節點(Full-node)或是遠端節點(Remote-node)

錢包跟節點的關係?

一個完整的Monero錢包 = 區塊鏈同步程式 (節點) + 錢包工具程式

以上就是Monero錢包的基本架構,這就也是為什麼每次打開GUI錢包時會自動出現區塊鏈同步程式啟動的原因。 因為錢包的運作需要依賴區塊鏈同步程式將區塊鏈的資料經由點對點(P2P)的方式下載到電腦上,再經由錢包工具程式掃描在區塊鏈中屬於自己的可用餘額;而每當你需要發送交易時,則是透過錢包工具程式利用私鑰簽署完交易之後,再經由區塊鏈同步程式透過P2P的方式將交易廣播到網路上。因此,運作中的區塊鏈同步程式在Monero點對點的網路中就是扮演一個節點(node)的角色。

節點、完整節點、遠端節點 有什麼不一樣?

前一段提到的錢包節點,它所負擔的工作只有下載區塊鏈資料和廣播錢包發出的交易,這樣可以確保區塊鏈資料是經過自己驗證的,但是,這些區塊鏈資料是從哪裡來的呢? 就正是世界各地的完整節點(Full-node)們提供的,其實區塊鏈同步程式在啟動的時候都會嘗試著透過port 18080和網路上的其他節點溝通,所以只要port 18080是暢通的狀況下,區塊鏈同步程式除了下載區塊鏈資料以外也會同時上傳區塊鏈資料給其他需要同步的節點,此時我們就稱為這個節點為完整節點(Full-node),也就是對Monero網路提供了完整的支援工作。 而至於遠端節點(Remote-node)則是指區塊鏈同步程式單獨存在而沒有錢包工具在同一台電腦上的節點,錢包得透過網路與區塊鏈同步程式連結,如此一來,一個區塊鏈同步程式所擁有的區塊鏈資料就可以被好幾個錢包所利用,於是使用者就不需要在每一台要用錢包的電腦上放著一份動輒數十GB的區塊鏈資料庫,也可以省去每次重新下載區塊的等待時間。

架設獨立節點的好處

  • 完整節點(Full-node)身負著去中心化的重責大任,線上的完整節點的數量越多,Monero網路也就越安全。
  • 遠端節點(Remote-node)通常是長時間放置,隨時與區塊鏈100%同步,如此一來,當你隨時需要使用錢包時就可以連接上這個遠端節點,省去區塊P2P同步的冗長時間,只需要從遠端節點資料庫裡掃描餘額即可;此外,遠端節點也可以讓多個裝置共用,譬如手機和筆電上的錢包都可以透過同一個遠端節點來運作,本站的公共節點服務就屬於此類的節點。

在開始之前,請先至官方網站下載最新的Monero CLI錢包檔案,壓縮檔內即含有monerod.exe,基本操作的官方說明可參考這邊


獨立完整節點(Full-node)架設方式

  1. 確認電腦上的tcp port 18080沒有被防火牆或防毒軟體阻擋。
  2. 確認路由器裡的port forward有被正確的將tcp 18080指向到該台電腦,並可能需要固定IP。
  3. 建立一個bat檔啟動monerod.exe,內容範例: monerod.exe --db-sync-mode safe --block-sync-size 20 --fluffy-blocks --data-dir D:\路徑
  4. 讓monerod執行一段時間後輸入指令status查看,若有節點連入(in)則代表設定成功。

獨立遠端節點(Remote-node)架設方式

  1. 確認電腦上的tcp port 18081沒有被防火牆或防毒軟體阻擋。
  2. (若有從外網連結的需求才做) 確認路由器裡的port forward有被正確的將tcp 18081指向到該台電腦,並可能需要固定IP。
  3. 建立一個bat檔啟動monerod.exe,內容範例: monerod.exe --db-sync-mode safe --block-sync-size 20 --fluffy-blocks --data-dir D:\路徑 --rpc-bind-ip 192.168.xx.xx --confirm-external-bind --restricted-rpc
  4. 等待節點完成同步後,即可使用錢包設定端節點至該遠端節點的IP,設定連接步驟可參考這篇文章

啟動參數介紹

  • --db-sync-mode 此參數可設定模式,safe效能較差但資料安全性較高,fastest則反之。
  • --block-sync-size 此參數可以設定區塊同步批次容量,10-200皆可,可依網路狀況選擇。
  • --fluffy-blocks 此參數可啟用fluffy blocks功能,節省區塊傳輸時的網路使用量。
  • --data-dir 此參數可以指定區塊鏈資料儲存的位置,預設為C:\ProgramData\bitmonero
  • --rpc-bind-ip 此參數須設定該台節點的IP。
  • --confirm-external-bind 此參數為允許外部錢包連入的必要參數。
  • --restricted-rpc 此參數可限制外部使用數個與安全性相關的API,建議使用。
  • --rpc-bind-port 此參數可更改預設的連入port 18081為指定數字。

開發者會議紀錄 DevMeeting 20171119

  • MRL小組已對BulletProofs做了徹底的研究
    • 可直接替代原先的range-proofs功能,容量大小約略是原先的10%
    • 速度基本上是一樣的… 或許可以變快一點點
    • 近期會把程式碼從Java test code 改寫成C/C++
  • MultiSig的開發持續進行中
  • 許多錯誤修正的程式碼已陸續被併入專案 (hyc 算過了, 一共72個)
    • 掩飾使用者輸入密碼時的密碼長度
    • 資料庫鎖定資料機制的更新
    • BSD的版本問題修復
    • 修正了show_transfers的多筆交易input顯示不全的問題
  • 硬體錢包
    • 團隊成員有二十位了
    • 第一個里程碑已完成
    • 原型會在本周的慕尼黑門羅幣會議展出
  • monero-core 的GitHub專案被正名為 monero-gui
  • Monero 整合小組已準備好發佈 Magento 電子商務插件下一個正在朝OpenCart電子商務插件進行整合。

繼續閱讀...

Monero發布新版本v0.11.1.0更新

更新總覽

此次發布的版本 v0.11.1.0為小幅度的問題修正更新。 此項更新是基於v0.11主版本的更新修正而來,主版本v0.11為因應先前九月十五號硬分叉的必要更新。該次分叉將提高了環狀簽名的大小限制為5,並踢除在環狀簽名中重複的交易輸入。這次釋出的新版本提供了許多改進並及大量的bug修復。 關於此次小幅度問題修正的一些重要更新內容:

  • 修正一個當交易池中出現重複交易時的同步失敗問題
  • 新增了在低區塊高度時的數值下限檢查機制
  • 新增了當產生的區塊無法從交易池中找到所有的交易時的保護機制
  • 修復了當交易輸入數量較大時的交易容量的預估問題
  • 修復了LMDB在32位元系統上的問題
  • 將 get_tx_backlog 此RPC呼叫改為不受限制的呼叫
  • 改善交易確認時產生的例外狀況
  • 修復一個當檢查未確認前的交易時可能造成的程式錯誤
  • 其他數個問題修正與改善

    繼續閱讀...

開發者會議紀錄 DevMeeting 20171022

  • 最近已合併進主程式碼的新功能
    • 支援輕量化錢包的新API
    • 子地址功能 (Sub-addresses)
  • 一個新的發布版本(0.11.0.1)將帶來數項問題修正,最早可能會在2017年10月23日禮拜一發布。(但還會啟動上面的兩項新功能)
  • 有關dotnetrussel’s(Verge)的推特機器人的討論
    • 這真的不值得花力氣討論,因為這根本不是漏洞。
    • 它只是透過”nestat”的指令監測該IP的port連線狀況。並不代表任何Monero的使用者或任何一筆交易。
    • dEBRUYNE可能會寫一些正式的文案出來闢謠。
  • 日後有關Monero硬體錢包的討論很可能會轉移到Monero社群會議(Monero Community meeting)
  • redfish 和hyc 正在著手處理資料庫同步和損毀的問題

繼續閱讀...

開發者會議紀錄 DevMeeting 20171001

  • 一款名為Monerujo的Android錢包APP已在google play商店正式發佈
  • vtnerd 公佈了一個用於測試錢包掃描速度的工具,並比較了各種不同密碼學函式庫與方法(方法大多來自MRL提供)造成的差異
  • MRL 打算在今天要釋出一份有關subaddresses的資料,但必須先將格式整理好
  • Sarang 繼續埋首研究聚合簽名(aggregate signature)
  • FFS(論壇資助系統)正在重新設計成可以直接植入getmonero.org網頁中的形式
    • 模擬畫面
    • 可能會重新命名。CFS(Community funding system-社群資助系統)?
  • Monero專案的授權問題極度需要討論
  • Purism(https://puri.sm)目前對於將Monero預設直接植入他們的Debian(PureOS) 版本中十分感興趣
    • 這也意味著可能可以推廣到Debain的上游程式碼中
    • 如果有任何人正在運行PureOS (https://pureos.net/),Monero開發團隊希望可以得到一些Monero在上面運行狀況的意見回饋
  • 十二月將會有個”Monero月”的計畫
    • Monero 將會出席CCC(34C3)-跟BTC團隊與riat團隊一同出席。討論串位於 #monero-ccc
    • 將舉辦 Monero 維也納見面會

繼續閱讀...

本站使用網頁挖礦服務公告

本站自開站以來致力於提供Monero使用者的中文消息管道 舉凡機器維護、域名註冊、翻譯工作都投入了不少心血 然而為了維護閱讀體驗,本站並未選擇投放商業廣告獲取收益 但近日Coinhive專案利用了Monero的演算法優勢為這個狀況帶來了新的選擇 基於以下考量我們決定在網站上嵌入Coinhive的服務以獲取收益

  • 與商業廣告相比,Coinhive不會犧牲使用者的隱私
  • 在適當的設定下不會干擾閱讀者的使用體驗
  • 越多網站使用Coinhive越能幫助Monero達到算力的去中心化
  • 此類服務一旦普及亦可增加Monero的流通性

然而我們必須告知使用者可能遇到的狀況與風險

  • 本站嵌入的Coinhive服務會使用您的瀏覽器進行挖礦並讓本站獲得收益
  • 挖礦過程將額外使用客戶端約50%的CPU使用率
  • Coinhive尚不是開源程式碼的專案,本站無法對其使用的核心程式做任何安全性擔保

若您發現此服務對您造成困擾 對本站頁面停用javascript即可停止此項服務 或是按下dogee下的暫停按鈕亦可暫停挖礦 並歡迎至facebook粉絲專頁社團回報您的狀況 以下為本站利用到挖礦服務的原始碼 挖礦程式設定為匿名模式 將使用客戶端執行緒的一半數量進行運算並於網站顯示算力與貢獻的hash次數 挖礦資訊可以在本站右邊側欄下方查看 後續更新:

  • 判斷當瀏覽裝置的電池低於一半且沒有連接電源時即停止運算
  • 加入使用者可自行停止運算的按鈕

2017/09/30更新: 近日發現這些程式碼被不洽當的利用。在此呼籲coinhive帶來的新技術是一個可以創造網站與讀者的雙贏商業模式,應該要建立在誠實的基礎上來進行挖礦,使用coinhive服務的網站都應有義務告知會利用到使用者的運算資源,並謹慎評估該網站是否適合用於營利,本站並不鼓勵可能造成非法情事之程式碼利用。

2018/04/09更新: 因應Monero v7 pow微調,已不再使用coinhive函式庫,另電量偵測函式因隱私問題已不被瀏覽器所支援故低電量自動停止功能也已移除。

開發者會議紀錄 DevMeeting 20170917

  • 本周的v0.11新版發佈因測試跟發佈時間間隔太短了,問題比以往來的多。接下來團隊將會嘗試為測試和新版發佈訂下更嚴格的時程。
    • 硬分叉時間為三月和九月
    • 程式碼則將在六月中與十二月中凍結
    • 這讓新版本在釋出前有更多機會進行測試跟問題的修復
    • 同時也提供更多釋出小數點版本(point release)的機會
  • 因應上述更結構化的步調,較大的更新應該會陸續加入主程式碼中。這些更新都不需要進行分叉。
    • Sub-Addresses
    • Multisig (MRL團隊表示目前看起來還不錯,但還是需要更多驗證,約在2017年十一月底可以完成。)
    • ZeroMQ
  • 需要更多的單元測試(Unit Testing) - 這對新的開發者來說是一個很好的入門方式。
  • Luigi1111 在GUI跟官方網站的工作上都從”候補維護者”轉為”主要維護者”,FluffyPony則轉為候補維護者。
  • 關於MyMonero GUI的部分
    • MyMonero 的Apple 鄧白氏編碼依然還沒收到
    • 為AppStore申請的MyMonero 的Google帳號已經準備好了(但也需要鄧白氏編碼)
    • 兩者都還是有在增加新東西(將iOS的程式碼改寫成JavaScript 的App)
  • MRL 的第二次未來規劃(roadmap)已經準備好讓各方校對了: https://drive.google.com/file/d/0ByPYdEm6O54rZGpTbkcwdWMwcW8/view

繼續閱讀...

從原始碼編譯Monero GUI錢包

Monero是一個開源專案,換句話說所有程式原始碼都會在GitHub上公開任人審閱與取用
那到底該怎麼用呢?
程式從原始碼到可以執行的程式之間需要一個編譯(compile)的過程 以下就是如何從GitHub自行編譯GUI錢包的過程教學

本教學適用在Windows 7, 10 的64位元系統 記憶體需求建議為8GB,硬碟空間15GB

將使用Monero在GitHub上目前最新的釋出版本(v0.11.0.0)進行編譯

繼續閱讀...

Monero GUI錢包使用遠端節點教學

在使用錢包時,需要將錢包程式與區塊鏈處於同步的狀態
但下載完整的區塊鏈需要不少時間與硬碟空間
以目前來說Monero的資料庫的容量約為27GB,通常至少需要一天的時間才能完成同步
因此很多時候改用遠端的節點來快速同步就是一個很方便的功能

這邊簡單釐清一下錢包與節點的概念:

錢包軟體 = 錢包介面 + 區塊鏈同步程式(節點)

當你執行錢包軟體時,錢包內建的節點程式會透過點對點(p2p)的方式與其他節點交換資訊
每當有新區塊產生並發佈到網路上時,收到資訊的節點就會把新區塊加入資料庫
因此每個節點都保存了整個區塊鏈的所有交易資訊可供其他節點取用
但也因為節點會需要花費頻寬與硬碟空間

所以許多人並不會架設完整節點,而是直接將錢包連接至現成的節點

可以是私人的節點或是公用的節點

如此一來,使用錢包的時候就再也不需要同步完整個區塊鏈資料庫
只需要從現有的節點中掃描交易資訊,通常數秒鐘就可以完成同步以開始使用錢包
這就是俗稱的輕錢包,一般常見的手機錢包都是利用這種模式達到快速同步的目的

以下我們就要來教你怎麼使用遠端的節點

首先你需要有一個現成節點的IP
你可以自己在某一台長時間待機的電腦執行monerod程式後找到可以存取的IP
也可以使用本站提供的公用節點IP

以下教學將以本站公用節點作為範例

  1. 若你是使用CLI指令介面的錢包:

    請在CLI錢包程式的目錄中建立一個bat檔,內容如下

    monero-wallet-cli.exe --daemon-host node1.xmr-tw.org

    以後只要利用這個bat檔啟動錢包程式就會是用本站的節點進行同步啦!

  2. 若你是使用GUI錢包:

    請至設定頁中

    若已啟動本機節點,請點選停止本機節點後
    區塊鏈同步位置填入node1.xmr-tw.org18081即可按下連接開始使用遠端節點

Monero正式釋出新版本0.11.0.0-代號Helium Hydra

更新總覽

這是Monero軟體的v0.11.0.0主版本更新,並且是因應九月十五號硬分叉的必要更新。這次分叉將會提高環狀簽名的大小限制,並踢除在環狀簽名中重複的交易輸入。這次釋出的新版本提供了許多改進並及大量的bug修復。 一些重點更新項目如下:

  • 區塊同步速度提升
  • 區塊鏈檔案匯入功能的改善
  • 將”混幣(mixin)”用詞正式改為”環簽大小(ring size)”
  • 增加 –fluffy-blocks 選項以提供fluffy區塊(fluffy blocks)的中繼功能
  • 不需要在輸入密碼時將未加密的錢包資訊載入到記憶體中
  • 降低使用遠端節點時洩漏隱私的風險
  • 增加世界語(Esperanto)的種子碼字詞表
  • 減少RPC呼叫getblocks指令的記憶體用量
  • 增加 “fee” 指令以顯示手續費資訊
  • 在bc_dyn_stats指令結果中顯示平均區塊間隔時間
  • 增加新的RPC呼叫指令: on_get_alt_blocks_hashes
  • 啟用對ppc64le 架構的支援
  • 在CLI中增加義大利語的支援
  • 在transfer_split的RPC呼叫中回傳per-tx數量
  • 在CLI中指令輸入介面改為使用readline的方式
  • 在poolstats指令結果中顯示直方圖
  • 在macOS版本中開始支援智慧挖礦的功能
  • 提供編譯快照版本的功能
  • 建立系統漏洞的的反應程序,HackerOne portal將提供漏洞獎金
  • 增加衍生的金鑰的方式來證明付款以取代直接揭露交易金鑰(tx key)
  • 改善在對新的交易輸出進行環簽時交易輸出的選擇方式
  • 新增sweep_below 功能以去除小量的餘額
  • 將mempool從記憶體中移至磁碟中的資料庫
  • 啟用對於iOS與Android的完整節點支援性
  • 新增功能使得可以透過RPC呼叫建立新錢包
  • 新增離線簽署(cold-signing)的功能以及relay_tx 的指令/RPC呼叫
  • 在CLI錢包中的transfer指令將可提供手續費選擇
  • 改善在Linux系統中的智慧挖礦功能對於AC電源與電池電源的偵測
  • getblocktemplate現在將會提供預期的區塊獎勵總額
  • 一如往常的大量bug修復及效能提升

在此版本貢獻的開發者們

這次更新有39位開發者參與工作,大部分都是無償的無私貢獻,總計送出了557個commits,包含新程式碼60254行。我們非常感謝這些開發者貢獻的時間與精神,以下為無特意排序的開發者名單:

  • moneromooo
  • kenshi84
  • Roberto Oliveira
  • Lee Clagett
  • Eugene Otto
  • MoroccanMalinois
  • Michael Shick
  • JollyMort
  • Erik de Castro Lopo
  • anonimal
  • erciccione
  • Guillaume Le Vaillant
  • rbrunner7
  • binaryFate
  • Riccardo “fluffypony” Spagni
  • Jaquee
  • Julien Klepatch
  • moneroexamples
  • Nano Akron
  • Antti Keränen
  • Jethro Grassie
  • xmr-eric
  • schnerchi
  • MaxXor
  • Andrei Muresan
  • Jkat
  • stoffu
  • Mike C
  • Gingeropolous
  • Jonathan Cross
  • m2049r
  • Miguel Herranz
  • Randi Joseph
  • assylias
  • Martin Wimpress
  • Ryan Mehta
  • Gentian
  • Robby Weinberg
  • Howard Chu

官方下載連結

為了你的安全,請移駕至原文提供的連結下載: https://getmonero.org/2017/09/07/monero-0.11.0.0-released.html 本文頁首圖由Codexlibero授權作品修改