原创

DeSo 生态 Openfund DEX 白皮书文档(2)

接上一篇文章: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(可在此处访问)。这将允许您使用“假钱”做所有事情,这样在您确定一切正常之前,您就不会将资本置于风险之中。

要设置测试网账户,只需执行以下步骤:

  1. 这是大多数开发人员在测试时开始使用的测试网参考节点。请注意,任何人都可以按照核心存储库中的说明运行 DeSo 节点,这恰好是一个相当可靠的节点。
  2. 创建帐户
  3. 请注意,DeSo 钱包是在您的浏览器中本地管理的。DeSo 钱包的工作方式与 MetaMask 几乎完全相同,只是它不需要安装 Chrome 扩展程序,并且它在应用程序级别支持更精细和透明的权限。这意味着,只要确认权限,在一个应用程序上创建钱包会导致任何其他 DeSo 应用程序都可以访问该钱包,包括 OpenfundDiamond 和 Focus(请注意,这些是主网链接,而不是测试网链接,因此您的测试网钱包将无法在那里访问)。
    1. 请注意,当您使用应用程序时,会颁发一个“派生密钥”,该密钥的权限比您的主密钥要有限得多,您必须在使用该应用程序之前接受该密钥。这使您无需在低价值交易(例如发帖或点赞帖子)上点击“确认”即可使用应用程序,同时 100% 确定该应用程序不会窃取资金。
  4. 我们建议始终对测试账户使用助记词,因为这往往更容易管理。您可以使用一个助记词,并通过点击钱包中的“添加帐户”来创建具有不同索引的新帐户。
  5. 创建帐户时,您可以输入您的电话号码以从水龙头获得 1 个免费的测试网$DESO
  6. 请注意,测试网 $DESO 在测试环境之外没有任何价值!
  7. 如果您不想输入电话号码,某些应用程序会使用高级验证码流程,例如 dev.openfund.com。最终,此流将重新集成到 reference 节点中。
  8. 拥有 Starter DESO 帐户后,您可以访问以下链接进行测试:
    1. 在这里,您可以根据需要登录并质押您的 DESO。
  9. 测试网 Openfund: https://dev.openfund.com/trade
    1. 在这里,您可以下订单并使用检查器查看正在构建并提交到 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 完成以下挑战赛练习,并构建一个功能齐全的做市机器人:

  1. 使用 getlimitorders 功能获取 openfund/deso 市场上 $openfund 的市场中间价。当心看起来像 BID 的 ASK,反之亦然!
  2. 下市价单买入价值 0.000001 DESO 的 $openfund。您应该能够仅使用入门 DESO 来执行此操作。
  3. 执行市价单后检查您的$openfund余额,以确认您拥有预期的$openfund数量。
  4. 下达一个限价单$openfund略低于市场中间价买入,下达一个限价单$openfund略高于市场中间价卖出。现在,您已经拥有上一步的 $openfund 和 $DESO,您应该能够执行此操作!订单应该 “停留” 在账簿上,而不是立即执行。保存交易orderid,以便您可以管理订单状态!orderid只是您用于下订单的交易的签名 txn 哈希。
  5. 使用 getlimitorders 判断您的订单是否已成交。当订单不再出现在订单簿上时,订单将被执行。
  6. 练习使用 SDK 取消和替换您的一个订单,并传递您下订单时order_id。
  7. 编写一个简单的例程,在成交后将您的买入“翻转”为卖出(以略高的价格,以便您赚取“点差”)。对您的其他限价单执行相同的操作。
  8. 高级:获得价值 100 美元的 $openfund 和价值 100 美元的$DESO。使用 ATOMIC 交易在市场中间放置 10 个出价和 10 个要价,每个出价 10 美元。
  9. 高级:编写一个例程,在报价成交时将您的要价“翻转”为出价(使用点差,这样您就可以从波动性中赚到一些钱!对出价执行相同的操作。
  10. 恭喜!如果您走到了这一步,那么您就正式成为 DeSo DEX 的做市商了!为 Focus 和 Openfund 提供支持的 AMM 本质上是您刚刚所做的高度复杂和扩展版本。

社交 AI 代理

使用 DeSo Python SDK 构建新型的娱乐性(并且可能有利可图)的社交代理:

  1. 使用 SDK 从您的帐户创建 Post。正确运行 main 应该已经实现了这一点。将文本编辑为更有趣的内容。
  2. 使用 SDK 在 testnet 上跟踪 @nadertheory,在主网上@nader。
  3. 使用 SDK 转发您帐户中的内容。重新发布使用相同的submit_post但设置了 RepostedPostHashHex。
  4. 使用 SDK 对某人的帖子发表评论。评论只是设置了 ParentPostHash 的帖子。
  5. 高级:使用 SDK 编写一个机器人,该机器人查询 AI API,以自动回复您的所有帖子,其中包含有意义和有用的内容。
  6. 高级:使用 SDK 编写一个机器人,该机器人会自动回复任何使用您的个人帐户中有意义的内容评论您的帖子的人。
  7. ADVANCED:使用 SDK 向某人发送付费消息。

AI 生成您的代码

尽管 DeSo Python SDK 具有许多有用的功能,但有时最简单的方法是通过观察另一个应用程序(例如 Openfund 或 Focus)来创建自己的交易流。本节将介绍如何执行此操作,以及如何使用 AI 自动生成代码:

  1. 在此处导航到 Openfund node.deso.org 上的“DAO Coin”选项卡。请记住,“DAO Coin”只是“DeSo Token”的旧术语!
  2. 在浏览器上打开 Web 检查器,然后导航到 Network (网络) 选项卡。
  3. 筛选请求以查找 get-hodlers-for-public-key。单击 “Copy as CURL” 以获取请求使用的参数。此外,请注意 “Copy Response”,因为我们也将使用它。
  4. 将 sdk 加载到您最喜欢的 AI 工具中后,将 “Copy as CURL” 的结果和 “Copy Response” 的结果粘贴到聊天中,并要求它添加一个函数来获取给定代币的所有持有者。
  5. 恭喜!您刚刚向 SDK 添加了一个 NEW FUNCTION!您可以使用此过程来自动化您在 openfund.com、focus.xyz 和任何 DeSo 应用程序上所做的任何事情!

PS:我们可能已经使用这种确切的方法来编写一些 DeSo Python SDK。嘘嘘,不要告诉任何人!🥲

高级 AMM 的工作原理是什么?

即将推出!(Focus 启动后)。

与此同时,我们先进的 AMM 活跃在 Openfund 的 DESOOPENFUNDBTC、ETH 和 SOL 市场上。

免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论