Tokens

如何將價值與乙太坊外部的代幣掛鉤

  • January 30, 2022

我有一個線上遊戲系統。我通過乙太坊發行一些代幣。我如何將在乙太坊上發行的代幣的價值與我的遊戲系統掛鉤,該系統在乙太坊生態系統之外。(ie) 使用者需要能夠使用自定義代幣購買遊戲物品,如武器、電源等。

從邏輯上講,我猜它會像這樣工作:我問使用者他們的乙太坊錢包公鑰。使用者將代幣發送到我的錢包。我將使用一些 API 查詢乙太坊,並確定使用者 X 已在我的錢包中存入了一些代幣。交易完成後,我會發放遊戲內物品。

看待這個問題的另一種方式是,當我在 ICO 中向使用者出售代幣時,使用者將如何使用這些代幣進行交易以換取我產品中的某些價值。

範常式式碼非常感謝。

通過 ICO 分發代幣後,您將在需要所述代幣的應用程序中編寫程式碼。代幣交易的目的完全取決於您,並取決於您正在建構的應用程序的參數。

您創建的代幣的合約程式碼將包含某種在乙太坊地址之間發送代幣的 sendCoin() 函式。因此,在程式碼中,您將指定一個用於在遊戲中收集代幣的地址,然後使用者將在乙太坊鏈上的交易中將代幣發送到該地址。發送代幣需要一個最新的乙太坊節點(以訪問代幣合約程式碼並發送交易),因此您遊戲中的使用者必須在他們的系統上擁有一個本地更新節點,或者您可能只擁有一個遠端節點啟動並執行它們集中連接(如果您不關心遊戲中的去中心化)。

這可能是真正的問題,即目前還沒有簡單的解決方案——在處理包括已發送代幣在內的交易之前,無法判斷他們已向您發送代幣(至少通過掃描區塊鏈)。每個新區塊需要大約 13 秒的時間來探勘,因此這是使用者必須等待收集他們所購買的任何東西的最短時間。您可以只記錄他們的購買並檢查他們的餘額(無需等待時間),然後在交易被探勘之前將物品交給他們。有很多方法可以做到這一點,但不能在一個問題中全部涵蓋。

最後我要說的是,確保你正在建構的遊戲以某種方式去中心化,否則使用基於乙太坊建構的代幣毫無意義。

編輯:忘了提一下,將代幣發送到另一個乙太坊地址將需要發送賬戶中的一些乙太幣(無論 sendCoin() 函式的 gas 成本是多少)。因此,如果他們正在執行本地乙太坊節點,他們將需要在他們的帳戶中添加一些乙太幣。

您可以使用 ERC20 將事件轉移到指定的接收者地址

(或者通過購買和購買事件製作一個特殊的智能合約)

發送事件後,您可以授予遊戲內物品。

真的就這麼簡單。如果您想要動態價格,您可能需要查看以下更新功能:https ://github.com/hunterlong/fiatcontract/blob/master/contracts/FiatContract.sol

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