Transactions

如何像交易所一樣處理乙太幣存款?

  • April 16, 2016

乙太坊的核心理念之一是去中心化。但是,仍然有許多有效的案例可以提供集中式錢包服務,交易所是最著名的例子之一。

似乎很少有關於如何在技術上為此類場景實施存款的資訊。

  • 關於 Homestead 版本的 tx 確認數量的最新建議是什麼?¹
  • 是否有提供範例實現的庫或服務?²
  • 自己處理這個問題的粗略虛擬碼實現是什麼?
  • 還有其他考慮嗎?³
  1. 此處提到的 5 個確認在乙太坊中,多少確認被認為是安全的?和這裡的 12我應該如何處理我的 DApp 中的區塊鏈分叉?,但這些與 Homestead 版本的相關性如何?

  2. 這裡提到了回流-tx 我應該如何在我的 DApp 中處理區塊鏈分叉?

  3. 我看到 Vitalik 建議執行兩個節點來降低風險。

除了您的主要問題是如何處理乙太存款之外,您還提出了許多問題。

您試圖解決的主要問題是雙花問題。如果有人向您的 Dapp 交易所存入資金,您如何確保資金不會被雙花,以及如何處理因分叉而被存入但實際上未花費的資金?

作為 DAPP 交易所的開發者,答案在你的法庭上——你自己決定。那麼為什麼不選擇 24 個區塊,或者像一個交易所那樣選擇 360 個區塊呢?無論哪種方式都能為您提供所需的信心。

我意識到這不是一個技術性的答案,但它存在一個功能問題,主要是送出買入或賣出訂單的使用者必須同時等待它完成或輸入訂單簿。因此,您必須以穩定性換取可用性。

您還應該知道,由於塊創建過程的性質,您將無法快速處理訂單或以與集中式服務相同的方式處理訂單。這是因為一個節點在嘗試處理通過網路收到的訂單的同時,無法知道放置在網路任何地方的所有訂單(即交易)。

這又是與集中式服務的主要區別,您也應該將其視為同一解決方案的一部分。

我不知道有任何可用的庫可以為您提供快速答案,但似乎有很多項目在那裡。

關於 Homestead 版本的 tx 確認數量的最新建議是什麼?

根據 web3 API,12 個區塊可以確保沒有分叉。至於 tx 確認…我想說 5 仍然是您想要的實際數量。這顯然會隨著 Serenity 而改變,鑑於 Casper 將帶來的巨大變化,我不確定如何回答這個問題。關注 Vitalik 的部落格,以便在開發時牢記這些事項。

是否有提供範例實現的庫或服務?

嗯…您可能想要處理事件和處理…不確定您的 tx 確認區域…似乎沒有任何預製工具用於這些目的…可能必須在其中一個客戶端中一起破解某些東西(建議為此使用 Parity,因為您想要快速的東西……而且 Parity 的速度非常快)。

自己處理這個問題的粗略虛擬碼實現是什麼?

像這樣的東西

js:

var i = myEthereumEvents
myEthereumEvents.watchAllEvents() {
   if (eventHit)
        var boolean = contract.promisifiedCheckBalanceOfPeer()
        if (boolean)
             contract.exchangeTokenValue()
}

現在您可能需要收集對其中一些的興趣並在 Solidity 中創建某種負載平衡…這需要您進行一些思考…那裡有大量元幣創建範例,您只需必須設置它來模仿其他鏈的代幣供應嗎?這可能有助於確保必要的數量……另一方面,您可能正在談論一些完全不同的東西,並且想要純粹來自交換方面的東西……我肯定會推薦的一件事是關閉快速同步並監控數量傳入交易並根據您的算法進行相應調整。

讓我知道這是否回答了您的問題。

引用自:https://ethereum.stackexchange.com/questions/2815