接上一篇文章:DeSo生態 Openfund DEX 白皮書文檔(1)
DeSo Python 開發工具包
構建、簽署和提交交易所需的一切都在 DeSo Python SDK 中。這是一個高級庫,可以非常輕鬆地執行 DeSo 的所有基本(和不那麼基本)交易類型。
最好的學習方法是簡單地瀏覽 README 並運行代碼。一旦您將一切都恢復到“成功”狀態,您就可以繼續進行挑戰,同時引導您構建高級做市機器人以及高級社交機器人。
閱讀接下來的部分,瞭解如何從社區獲取幫助並測試您的知識。
從社區獲得幫助
首先,如果您遇到麻煩並想與某人交談,DeSo PoS 討論電報頻道是一個很好的資源。運行節點的每個人都在其中,DeSo 核心團隊的成員也在其中。那裡的許多人通常對 DeSo 區塊鏈的來龍去脈非常瞭解,對試圖瞭解正在發生的事情的新用戶非常有幫助。我們曾經運行過 Discord,但我們發現一個簡單的以開發人員為中心的 Telegram 頻道效果更好。
如果您在進行交換時遇到問題,HeroSwap Support 頻道可以為您提供幫助。這應該不是必需的,但為了完整起見,我們將其包含在此處。
https://docs.deso.org/openfund/the-deso-python-sdk
創建 DeSo 測試網賬戶
首先,如果您要編寫一個交易機器人,最好熟悉 DeSo 節點測試網 UI(可在此處訪問的節點)和 Openfund 測試網 UI(可在此處訪問)。這將允許您使用“假錢”做所有事情,這樣在您確定一切正常之前,您就不會將資本置於風險之中。
要設置測試網賬戶,只需執行以下步驟:
- 這是大多數開發人員在測試時開始使用的測試網參考節點。請注意,任何人都可以按照核心存儲庫中的說明運行 DeSo 節點,這恰好是一個相當可靠的節點。
- 創建帳戶
- 請注意,DeSo 錢包是在您的瀏覽器中本地管理的。DeSo 錢包的工作方式與 MetaMask 幾乎完全相同,只是它不需要安裝 Chrome 擴展程序,並且它在應用程序級別支持更精細和透明的權限。這意味著,只要確認權限,在一個應用程序上創建錢包會導致任何其他 DeSo 應用程序都可以訪問該錢包,包括 Openfund、Diamond 和 Focus(請注意,這些是主網鏈接,而不是測試網鏈接,因此您的測試網錢包將無法在那裡訪問)。
- 請注意,當您使用應用程序時,會頒發一個“派生密鑰”,該密鑰的權限比您的主密鑰要有限得多,您必須在使用該應用程序之前接受該密鑰。這使您無需在低價值交易(例如發帖或點贊帖子)上點擊“確認”即可使用應用程序,同時 100% 確定該應用程序不會竊取資金。
- 我們建議始終對測試賬戶使用助記詞,因為這往往更容易管理。您可以使用一個助記詞,並通過點擊錢包中的“添加帳戶”來創建具有不同索引的新帳戶。
- 創建帳戶時,您可以輸入您的電話號碼以從水龍頭獲得 1 個免費的測試網$DESO
- 請注意,測試網 $DESO 在測試環境之外沒有任何價值!
- 如果您不想輸入電話號碼,某些應用程序會使用高級驗證碼流程,例如 dev.openfund.com。最終,此流將重新集成到 reference 節點中。
- 擁有 Starter DESO 帳戶後,您可以訪問以下鏈接進行測試:
- 在這裡,您可以根據需要登錄並質押您的 DESO。
- 測試網 Openfund: https://dev.openfund.com/trade
- 在這裡,您可以下訂單並使用檢查器查看正在構建並提交到 DeSo 區塊鏈的交易。
有關所有有用的測試網鏈接(包括測試網區塊瀏覽器)的參考,請參閱此處。
有關創建大量帶有 starter DESO 的主網賬戶的提示,請參閱此處。
有關構建 DeSo 應用程序的入門知識,請參閱此處。可用作參考,或者如果您在本指南中發現一些令人困惑的內容。
調試提示和代碼演練
DeSo 區塊鏈使用 Go 編程語言編寫,以實現高性能,其代碼是 100% 開源的,核心和後端存儲庫分別是理解節點架構和交易構建最重要的。核心存儲庫代表了處理事務的所有最關鍵代碼,而後端存儲庫主要由您可以調用的 REST 端點組成,以構建和提交事務。如果您對它們感到好奇,將這兩個存儲庫加載到您的 IDE 中以探索它們會很有用(我們推薦 VSCode 或 Goland;我們的團隊同時使用這兩種軟件庫)。話雖如此,即使 DeSo 區塊鏈是用 Go 編寫的,您也不必瞭解 Go 即可構建和提交交易!在本節中,我們將向您展示如何使用簡單的 Python 庫來構建、簽署和提交編寫交易機器人所需的所有基本訂單管理交易。
Openfund 客戶端構建、簽署和提交與本教程中將要處理的完全相同的交易(主網客戶端、測試網客戶端)。這意味著,如果您不確定如何做某事,您只需打開 Openfund 交易頁面,打開檢查器,轉到網絡選項卡,然後查看 Openfund 如何構建和提交交易(如果您不熟悉此類事情,請查看有關如何使用 Web 檢查器執行此操作的教程)。您唯一無法從此過程中獲得的是交易的簽名,我們將在本教程中介紹,並且 Python 庫已經為您實現了這一點。除了使用 Openfund 檢查事物外,您還可以使用參考 DeSo 節點(主網節點、測試網節點),它支持更大的交易集,包括進行鏈上發佈、在鏈上關注用戶等等。當 Focus 啟動時,您也將有更多的交易類型可供探索(焦點主網、焦點測試網)。通常,當核心團隊添加新的交易類型時,它們會首先在參考 DeSo 節點上進行測試,因此這些通常是瞭解交易如何運作的最“完整”的地方。例如,在本教程中,您可以在參考客戶端的 “DAO” 選項卡上查看代幣是如何鑄造、銷燬和發送的。不過,對於所有交易,Openfund 是檢查它們的最佳場所。
此外,如果您想更加“硬核”,您可以閱讀 DeSo 節點代碼本身,看看您嘗試構建的交易實際上是如何在後臺處理的。引用後端支持的所有端點都有一個 RoutePath* 形式的變量,例如 RoutePathUpdateProfile。如果你查找用法,你會發現它們以這樣的格式鏈接到 RoutePath。這允許您跟蹤終端節點正在做什麼(如果您收到奇怪的錯誤,這很有用)。DeSo 開源節點代碼還提供了負責構建交易的 Go 函數,這些函數都遵循通用的命名方案 CreateTxn,比如 CreateUpdateProfileTxn,如果你追蹤 txn 構造端點的 RoutePath,通常會看到這些函數之一。DeSo 區塊鏈支持的每種交易類型都實現了一個connect功能,例如 connectUpdateProfile,當網絡上的節點實際處理您的特定交易時,就會調用該功能。要查看 DeSo 區塊鏈支持的所有交易類型,您只需在核心存儲庫中搜索所有 _connect 函數,然後找到調用它的 Create 函數以查看它是如何構建的(可能位於後端存儲庫中)。雖然這不是絕對必要的信息,但如果您不確定為什麼您的交易被網絡拒絕,或者如果您想查看可以為特定交易類型提供哪些參數,它會很有用。最好的調試方法是找到你嘗試觸發的 _connect 函數,然後跟蹤它到實際構造事務的函數,看看它在做什麼。此外,如果你遇到錯誤,如果你在 IDE 中加載了它們,你總是可以在 core+backend 倉庫中找到它。所以,總結一下:
- 要查看構建事務或獲取數據時可以點擊的所有可能的端點,請在 core+backend 存儲庫中查找 RoutePath*。
- 找到被調用的函數並跟蹤它,以查看事務是如何構造的或如何返回數據的。
- 要查看節點可以處理的所有 txn 類型,請在 core 中查找所有 _connect 函數並通讀它們,或者找到適用於您的特定交易類型的函數。
- Create*Txn 函數負責構造事務,通常在 txn 構造端點中調用。如果您遇到奇怪的錯誤,您可能會追蹤它們。
我們最關心的交易如下(由於遺留原因,DeSo 代幣在代碼中稱為“DAO Coins”:
- _connectDaoCoin
- 用於鑄造和銷燬您的代幣,或更改轉賬限制
- _connectDaoCoinLimitOrder
- 用於創建市價單和限價單,以及取消訂單
- _connectDaoCoinTransfer
- 用於將您的令牌轉移到其他賬戶
- 我們不會在這裡介紹它們,但您可能還對以下功能感興趣,這些功能允許您為您的硬幣增加收益:
- _connectCoinLockup
- _connectCoinLockupTransfer
- _connectUpdateCoinLockupParams
如果需要,您可以跟蹤上述函數是如何一直調用到 RoutePath 的,然後 RoutePath 將告訴您如何使用簡單的 HTTP 請求實際觸發它們。但是,在現有應用程序(如 Openfund)上檢查 http 請求,並從 RoutePath “自上而下”地工作會更容易,因此我們通常建議這樣做。我們只想為您提供這兩個選項,以便您擁有最大的調試能力。
每當您構造事務時,正如下一節將向您展示如何操作一樣,您可能會收到一條非常長且難以閱讀的錯誤消息。破譯這些的關鍵是一直走到最後並尋找您得到的 RuleError。例如,如果您沒有 DESO 或類似的東西,您通常會有 RuleErrorInsufficientBalance。RuleError 應該始終告訴您發生了什麼,並且一目瞭然。但如果不是,那麼您可以如上所述進入代碼並跟蹤發生了什麼。這就是 100% 開源軟件的好處!
使用 AI 編寫區塊鏈機器人
您可能已經注意到,DeSo Python SDK 是一個 Python 文件。這具有巨大的價值,因為這意味著您只需將整個 SDK “放”到您最喜歡的 AI 中,然後讓它為您編寫新函數,或者以新穎的方式將現有函數組合在一起。在進行本節中的其他練習時,請記住這一點。在開始之前將 SDK 加載到 AI 中可能會有所幫助,以便您準備好向它提問!
做市機器人
使用 DeSo Python SDK 完成以下挑戰賽練習,並構建一個功能齊全的做市機器人:
- 使用 getlimitorders 功能獲取 openfund/deso 市場上 $openfund 的市場中間價。當心看起來像 BID 的 ASK,反之亦然!
- 下市價單買入價值 0.000001 DESO 的 $openfund。您應該能夠僅使用入門 DESO 來執行此操作。
- 執行市價單後檢查您的$openfund餘額,以確認您擁有預期的$openfund數量。
- 下達一個限價單$openfund略低於市場中間價買入,下達一個限價單$openfund略高於市場中間價賣出。現在,您已經擁有上一步的 $openfund 和 $DESO,您應該能夠執行此操作!訂單應該 “停留” 在賬簿上,而不是立即執行。保存交易orderid,以便您可以管理訂單狀態!orderid只是您用於下訂單的交易的簽名 txn 哈希。
- 使用 getlimitorders 判斷您的訂單是否已成交。當訂單不再出現在訂單簿上時,訂單將被執行。
- 練習使用 SDK 取消和替換您的一個訂單,並傳遞您下訂單時order_id。
- 編寫一個簡單的例程,在成交後將您的買入“翻轉”為賣出(以略高的價格,以便您賺取“點差”)。對您的其他限價單執行相同的操作。
- 高級:獲得價值 100 美元的 $openfund 和價值 100 美元的$DESO。使用 ATOMIC 交易在市場中間放置 10 個出價和 10 個要價,每個出價 10 美元。
- 高級:編寫一個例程,在報價成交時將您的要價“翻轉”為出價(使用點差,這樣您就可以從波動性中賺到一些錢!對出價執行相同的操作。
- 恭喜!如果您走到了這一步,那麼您就正式成為 DeSo DEX 的做市商了!為 Focus 和 Openfund 提供支持的 AMM 本質上是您剛剛所做的高度複雜和擴展版本。
社交 AI 代理
使用 DeSo Python SDK 構建新型的娛樂性(並且可能有利可圖)的社交代理:
- 使用 SDK 從您的帳戶創建 Post。正確運行 main 應該已經實現了這一點。將文本編輯為更有趣的內容。
- 使用 SDK 在 testnet 上跟蹤 @nadertheory,在主網上@nader。
- 使用 SDK 轉發您帳戶中的內容。重新發布使用相同的submit_post但設置了 RepostedPostHashHex。
- 使用 SDK 對某人的帖子發表評論。評論只是設置了 ParentPostHash 的帖子。
- 高級:使用 SDK 編寫一個機器人,該機器人查詢 AI API,以自動回覆您的所有帖子,其中包含有意義和有用的內容。
- 高級:使用 SDK 編寫一個機器人,該機器人會自動回覆任何使用您的個人帳戶中有意義的內容評論您的帖子的人。
- ADVANCED:使用 SDK 向某人發送付費消息。
AI 生成您的代碼
儘管 DeSo Python SDK 具有許多有用的功能,但有時最簡單的方法是通過觀察另一個應用程序(例如 Openfund 或 Focus)來創建自己的交易流。本節將介紹如何執行此操作,以及如何使用 AI 自動生成代碼:
- 在此處導航到 Openfund node.deso.org 上的“DAO Coin”選項卡。請記住,“DAO Coin”只是“DeSo Token”的舊術語!
- 在瀏覽器上打開 Web 檢查器,然後導航到 Network (網絡) 選項卡。
- 篩選請求以查找 get-hodlers-for-public-key。單擊 “Copy as CURL” 以獲取請求使用的參數。此外,請注意 “Copy Response”,因為我們也將使用它。
- 將 sdk 加載到您最喜歡的 AI 工具中後,將 “Copy as CURL” 的結果和 “Copy Response” 的結果粘貼到聊天中,並要求它添加一個函數來獲取給定代幣的所有持有者。
- 恭喜!您剛剛向 SDK 添加了一個 NEW FUNCTION!您可以使用此過程來自動化您在 openfund.com、focus.xyz 和任何 DeSo 應用程序上所做的任何事情!
PS:我們可能已經使用這種確切的方法來編寫一些 DeSo Python SDK。噓噓,不要告訴任何人!🥲
高級 AMM 的工作原理是什麼?
即將推出!(Focus 啟動後)。
與此同時,我們先進的 AMM 活躍在 Openfund 的 DESO、OPENFUND、BTC、ETH 和 SOL 市場上。




