如何建構可擴展的乙太坊區塊鍊網路?
我通過執行以下步驟設置了私有乙太坊塊。
1- 在 2 個系統上初始化相同的 genesis.json。
2- 使用相同的網路 ID 啟動 geth 控制台。
3- 通過使用 admin.addPeer 命令將它們添加為對等體來添加這兩個系統(節點)。
現在我可以做所有的交易了。
問題:
1- 現在這個私有區塊鏈已經準備好了,如果我必須添加任何新使用者,這是否意味著我必須啟動一個新伺服器並且在該伺服器上,我必須按照上述步驟操作?
2- 這些錢包(ETH 錢包)如何設置他們的基礎設施?他們是否有一台連接到公共乙太坊區塊鏈的伺服器?並且任何從這些錢包加入/購買乙太幣的新使用者基本上都是作為一個帳戶添加到這些錢包中,而不是作為一個新的對等點?
3-從以上兩個問題我發現,基本上有很多交易所或錢包作為對等點連接到公共區塊鏈,使用這些錢包進行買賣的個人基本上是這些錢包的賬戶。(添加了一個新帳戶,例如:personal.newAccount(“xux”))
我是區塊鏈的新手,並試圖了解它的設置方式,以便我可以為我的私有區塊鏈複製相同的內容。如果我錯了,請糾正我,並消除我的疑慮。
提前致謝。
遺憾的是,乙太坊的可擴展性不是很高。如果您想更改 Genesis 文件中的任何內容。您將不得不重新配置所有節點。至少現在它不允許您動態擴展。
- 如果它只是一個新使用者,您需要一個可以在兩個節點中的任何一個上的新帳戶。添加另一個節點不會有問題,只是那個創世文件不能改變或者你重新配置所有。另外,要在同一個私有區塊鏈上,您的創世文件應該是相同的,並且網路 ID 應該是相同的。
- 了解帳戶、節點和伺服器之間的區別。一個伺服器可以託管多個節點,您的節點是您用來連接到網路的,並且一個帳戶可以在您的任何節點上,您可以在網路中移動它。(隨身攜帶您的密鑰庫)。所以當你說買,你做交易,你只能發送。諸如 DApp 和智能合約之類的東西將允許執行您請求的邏輯,並且有人將乙太幣從他們的“帳戶”發送到您的“帳戶”。您的餘額和交易歷史記錄保留在區塊鏈中。
- 對等點基本上是節點,當您執行 admin.addPeer 時,您承認它們在網路上的存在。Quorum 是乙太坊的一個分支,它允許一種非常動態的方式來添加對等點。並且還提供了高TPS。
1- 現在這個私有區塊鏈已經準備好了,如果我必須添加任何新使用者,這是否意味著我必須啟動一個新伺服器並且在該伺服器上,我必須按照上述步驟操作?
不,您將平台問題與應用程序問題混淆了。
乙太坊的設計是為了讓所有正常執行的節點最終就交易的正確解釋達成共識,進而就係統狀態達成共識。
“使用者”這個詞被重載了。它可以是個人或組織、委員會、設備。歸根結底,它的含義是處理權限和訪問控制等問題的應用程序關注點。這在契約設計中有所體現。
在實踐中,專用網路通常服務於多個組織,而這些組織可能有興趣確保其他組織(例如競爭對手)沒有不公平的優勢。拓撲解決方案是每個組織都執行一個節點。
合約與使用者用來發送交易的節點無關。
網路的彈性,而不是速度,與節點的數量成比例。隨著更多節點的添加,每秒事務數不會增加,但修改歷史事實所需的同謀節點的門檻值數量會增加。
2- 這些錢包(ETH 錢包)如何設置他們的基礎設施?他們是否有一台連接到公共乙太坊區塊鏈的伺服器?並且任何從這些錢包加入/購買乙太幣的新使用者基本上都是作為一個帳戶添加到這些錢包中,而不是作為一個新的對等點?
錢包和合約沒有基礎設施。乙太坊網路提供連接、處理、狀態和彈性。當合約部署在乙太坊上時,合約的程式碼成為區塊鏈上可觀察到的事實。合約必須按照編碼執行它們的指令。公共區塊鍊為該平台提供了數千個節點的複制。已發布的合約不需要其創建者提供進一步的基礎設施支持。
私有區塊鏈(通常)使用相同的節點軟體。創建者設計的拓撲滿足副本、安全訪問(每個“使用者”需要連接到至少一個節點)、節點到節點的連接,可能在 VPN 之後,通常每個參與節點中至少有一個節點組織,以便他們可以獨立解釋區塊鏈,而無需依賴激勵措施可能不完全一致的競爭對手。
3-從以上兩個問題我發現,基本上有很多交易所或錢包作為對等點連接到公共區塊鏈,使用這些錢包進行買賣的個人基本上是這些錢包的賬戶。(添加了一個新帳戶,例如:personal.newAccount(“xux”))
區塊鏈顛倒了中心化數據和請求資訊的分散節點的通常關係。有一組共享的事實和協議。就這些。
在公共鏈上,不需要進一步的基礎設施。私有鏈解決方案拒絕公共鏈並使用(大部分)相同的軟體來創建類似的網路。它類似於公共網際網路和使用相同軟體堆棧和協議的內部 Intranet。
如果您將“硬幣”視為可以傳遞的對像或文件,那將毫無意義。它更像是天空中的電子表格,每個人都能看到它。有關於更新的嚴格規則和所有更改的不可變歷史。
當一個新節點加入網路時,它做的第一件事就是下載區塊,其中包含有序的交易歷史,它自己執行交易,就像重播日誌一樣。當完全趕上時,節點將與網路的其餘部分達成共識。
(完整)節點類似於數據庫副本,因為它們包含所有使用者和所有合約的完整狀態歷史。節點同意一切。將契約視為類似於儲存過程可能會有所幫助。不允許任意更新。例如,系統管理員不允許
INSERT INTO TABLE ...
. 每個人都受到限制,send(data, {to: contract})
契約將決定是否允許更新。流氓節點只會與網路的其餘部分失去共識。網路將簡單地忽略流氓節點,因為其他節點在為自己評估交易歷史後會得出結論,他們不同意流氓節點,因此應該忽略它。
私有鏈中的共識與公共鏈中的共識具有不同的約束。因此,存在諸如 Quorom 等乙太坊的變體。在這兩種情況下,分佈式的設計模式與以伺服器為中心的系統完全不同,但交易吞吐量和隱私問題的處理方式與公共主網上的情況不同。
希望能幫助到你。