<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>xunannan</title>
        <link>https://paragraph.com/@xunannan</link>
        <description>I will be rich</description>
        <lastBuildDate>Wed, 15 Jul 2026 02:20:31 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>xunannan</title>
            <url>https://storage.googleapis.com/papyrus_images/8afc6dd189493a4430d9590cd65ae3f4fb413c0f0316960930635aa688a2d2fe.jpg</url>
            <link>https://paragraph.com/@xunannan</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[虫洞空投规则]]></title>
            <link>https://paragraph.com/@xunannan/7P1PqV9nvcki1zn3itgK</link>
            <guid>7P1PqV9nvcki1zn3itgK</guid>
            <pubDate>Tue, 12 Mar 2024 05:32:40 GMT</pubDate>
            <description><![CDATA[了解资格标准链上用户资格Wormhole 生态系统项目的链上用户是本次空投的最大接受者，遥遥领先。它们占了 5.49 亿个 W 代币，占总分配量的 81% 以上。为了确定个人奖励，Wormhole 贡献者于 2024 年 2 月 6 日 23:59 UTC 拍摄了链上活动快照。该快照包括三年来与 Wormhole 生态系统应用程序交互的数百万个独特钱包，因此提供了对用户参与度的全面了解。所有权图所有权聚类 是分析的一个核心方面。由于用户在不同的生态系统中使用多个钱包，多链空投活动显然具有挑战性。Wormhole 特别连接了许多不同的生态系统——EVM、Solana、Move、Cosmos、Algorand 和 NEAR。为了最大限度地提高每个用户获得空投资格的机会，Wormhole 贡献者构建了一个所有权图，该图将唯一的用户 ID 分配给属于该用户的钱包集群。与 Wormhole 生态系统应用程序（例如 Pike、Mayan、Allbridge、Portal 等）进行交互的钱包都包含在内。 **所有权图整合了用户在单个用户 ID 下可能在不同生态系统中进行的所有交易。这确保了根据...]]></description>
            <content:encoded><![CDATA[<h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>了解资格标准</strong></h2><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>链上用户资格</strong></h3><p>Wormhole 生态系统项目的链上用户是本次空投的最大接受者，遥遥领先。它们占了 5.49 亿个 W 代币，占总分配量的 81% 以上。为了确定个人奖励，Wormhole 贡献者于 2024 年 2 月 6 日 23:59 UTC 拍摄了链上活动快照。该快照包括三年来与 Wormhole 生态系统应用程序交互的数百万个独特钱包，因此提供了对用户参与度的全面了解。</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>所有权图</strong></h3><p>所有权聚类 是分析的一个核心方面。由于用户在不同的生态系统中使用多个钱包，多链空投活动显然具有挑战性。Wormhole 特别连接了许多不同的生态系统——EVM、Solana、Move、Cosmos、Algorand 和 NEAR。<strong>为了最大限度地提高每个用户获得空投资格的机会，Wormhole 贡献者构建了一个所有权图，该图将唯一的用户 ID 分配给属于该用户的钱包集群。与 Wormhole 生态系统应用程序（例如 Pike、Mayan、Allbridge、Portal 等）进行交互的钱包都包含在内。</strong> **所有权图整合了用户在单个用户 ID 下可能在不同生态系统中进行的所有交易。这确保了根据用户的所有交易来评估用户，而不是根据他们在任何特定生态系统中的活动的碎片视图。**这项技术也是手动标记合约、协议中继热钱包和拥有数百个甚至数千个钱包的大型女巫所有权集群所采取的几个步骤中的第一步。</p><p>以上图为例，每个互连钱包的所有权都可以归属于单个用户 ID。尽管某些钱包不相互交互，但这仍用于确定单个用户的奖励。<strong>值得注意的是，合格用户的总奖励分配给其公认所有权集群中的所有钱包。因此，检查所有曾经与 Wormhole 生态系统应用程序交互的钱包（包括接收和发送）以兑换全部奖励至关重要。</strong></p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>资金来源分析</strong></h3><p>近几个月来，虫洞生态系统应用程序的女巫农业活动大幅增加。为了保留对真正的早期采用者和新的生态系统参与者的奖励，应用了一系列女巫检测技术。</p><p>Sybils 通常的目标是从单一资金来源资助大量或（在几个已确定的 Wormhole 实例中）数百到数千个钱包集群。然后，每个钱包都继续在协议内执行自己的一组交易。虫洞贡献者使用来自存档节点的历史数据以及每个连接链上广泛标记的交换钱包和合约来确定每个钱包的资金来源行为是否表现出明显的女巫特征。</p><p>分析揭示了两种类型的资金来源攻击：</p><ul><li><p>**扩散资金：**钱包 A 为钱包 B、C、D .. Z 提供资金</p></li><li><p>**顺序扩散资金：**钱包 A 资助 B，钱包 B 资助钱包 C……</p></li></ul><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>行为聚类分析</strong></h3><p>虽然来源资金女巫检测是有效的，但随着时间的推移，女巫策略也取得了显着进步。更老练的参与者可能会直接从交易所单独为大量钱包提供资金，试图规避资金来源检测算法。然而，大规模执行此活动需要自动化，并且通常会表现出将这些参与者与合法用户区分开来的行为模式。通过在所有所有权集群的交易相似矩阵上应用<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://arxiv.org/abs/0803.0476?ref=wormhole.ghost.io">Louvain 社区检测算法</a>，Wormhole 贡献者能够根据随着时间的推移以及以其他钱包的类似间隔执行的重复操作来识别女巫。下图提供了此行为的简化示例：</p><p>该算法根据时间、节奏和动作将事务映射到唯一的 ID，以匹配相同或几乎相同的行为。这将高密度大规模自动钱包操作与低密度真实用户操作分开。虫洞贡献者仅将这种识别策略与其他女巫检测机制结合使用。</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>垃圾交易分析</strong></h3><p>另一种常见的大规模行动涉及相同代币数量的快速顺序交易，无论是在两条链之间还是跨多个链。如果钱包的交易频率<strong><em>异常</em></strong>高，并且与 2023 年 12 月开始的女巫活动大量涌入相一致，则可能会被标记为类似垃圾邮件的行为，并随后从空投资格数据集中删除。</p><p>值得注意的是，这些女巫检测技术通过调节过滤强度的参数来实现。虫洞贡献者认识到，不可避免地，该协议的一些合法用户可能会被任何一种过滤器捕获，特别是在最近女巫和垃圾邮件活动频繁的时期。贡献者将在未来几周内仔细重新评估用户群体的资格。今天的更新已经将资格池扩展到了新的钱包。<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/wormholecrypto/status/1765459335348617472?s=20&amp;ref=wormhole.ghost.io">正如公告</a>中所述，符合资格者的奖励可能会发生变化。</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>奖励算法</strong></h3><p>按照所有权图并使用反女巫技术进行过滤，Wormhole 贡献者构建了一个奖励算法来确定用户有资格领取多少 W 代币。为了明确资格标准，奖励算法的一些关键要素披露如下：</p><ul><li><p><strong>时间</strong>：Wormhole 主网于 3 年前推出，是最早的互操作协议之一。从那时起，该协议通过 DeFi 活动的高峰期和低谷期的周期可靠地促进了多链通信。 奖励的总体分配严重偏向于 Wormhole 的早期采用者和生态系统应用程序，以奖励该协议的长期和早期用户。</p></li><li><p>**累计转账：**用户必须满足*所有链接钱包计算 *的最低累计转账金额要求才有资格。值得注意的是，原始价值是根据与时间、资产、链条和其他特征相关的评分权重进行调整的，其中一些特征将在下面详细介绍。<em>调整后</em>累计价值的中位门槛约为 1,500 美元。对于早期和一致的生态系统协议用户来说，这个阈值较低，对于新用户来说，这个阈值较高。</p></li><li><p><strong>关键得分和积分奖励</strong></p><ul><li><p>连续3个月或更长时间的用户活动将获得奖励乘数。</p></li><li><p>2023 年 12 月 1 日之前的用户活动将获得奖励乘数。</p></li><li><p>上一次熊市期间（2022年6月-2023年10月）的用户活动获得了奖励乘数。</p></li><li><p>主网启动第一年的用户活动获得了奖励乘数。</p></li><li><p>累计交易金额超过10,000美元的用户将获得奖金乘数。</p></li><li><p>涉及常用链（例如 ETH）的交易将获得奖励乘数。</p></li><li><p>涉及 BTC、ETH、稳定币和其他 DeFi 核心资产的交易均获得奖金乘数。</p></li><li><p>涉及目标链流动性极低甚至没有资产的交易将被赋予负乘数。</p></li></ul></li></ul><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.allium.so/?ref=wormhole.ghost.io">Wormhole 贡献者与Allium</a>的优秀团队合作进行了整个分析——从所有权聚类、女巫检测、奖励算法的开发和执行。空投完成后，Wormhole 贡献者和 Allium 团队将发布一份关于所采用的反女巫策略和聚类算法的广泛技术报告。本文档旨在通过提供对所实施的方法和技术的准确见解，为 Wormhole 用户提供完全的透明度。我们还希望更广泛的加密社区能够从这项工作中受益，使未来的空投和奖励计划更加公平和稳健。</p><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>社区用户资格</strong></h2><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>有关特定社区群体资格的详细信息</strong></h3><p>本次 Wormhole 空投的分配（占 W 代币供应量的 6.78%）分配给链上用户和开发者（约占分配的 81%）以及各种社区团体（约占分配的 19%）。每个社区团体的具体资格标准解释如下：</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>虫洞不和谐参与</strong></h3><p>Wormhole Discord 社区的某些成员将根据他们的积极参与和贡献获得奖励。帮助营造充满活力的社区体验、提供有关开发人员体验和产品用户体验的反馈以及支持新的和现有的生态系统应用程序的社区成员在 Wormhole 协议的开发和发展中发挥着重要作用。在快照之前具有以下角色的 Discord 用户也有资格参加此次空投：太空行走者、外星人和虫洞研究员。</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>热情</strong></h3><p>Zealy 用户通过创作艺术品和模因、回答测验、了解 Wormhole 贡献等任务以及社交活动（例如关注与 Wormhole 密切合作的团队并与他们互动）为 Wormhole 社区做出贡献。这些由社区驱动的创意贡献有助于传达 Wormhole 协议的使命，强化协议的品牌，并教育其他人了解协议的运作方式。它们对于发展和推进协议至关重要。因此，钱包连接到 Zealy 账户的前 500 位 Zealy 参与者有资格获得本次空投。</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>皮提安质押者</strong></h3><p>快照日质押 PYTH 数量排名前 10,000 的钱包有资格获得空投。Pyth 是基于 Wormhole 构建的历史最悠久的多链应用程序之一，现已发展到为许多有价值的加密项目和生态系统提供服务。前 10,000 名权益持有者被认为是 Pyth 协议中参与度最高的个人，他们也可能参与治理。因此，他们是获得奖励的最大社区群体。</p><h3 id="h-y00ts" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>神神/y00ts</strong>：</h3><p>DeGods 和 y00ts 是使用 Wormhole 对多链进行战略押注的 NFT 系列。DeGods 和 y00ts 团队都使用 Wormhole 使他们的收藏品成为多链，并继续与 Wormhole 贡献者密切合作来构建多链产品。空投将奖励这些收藏品的持有者，因为他们是 Wormhole Discord 的一部分，并在过去将他们的 NFT 与 Wormhole 跨链转移。因此，在快照之前加入Wormhole Discord并通过Matrica验证获得角色的持有者有资格获得空投。奖励归属于持有者钱包地址。</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>坏孩子</strong></h3><p>Cosmos 是主要的加密生态系统之一，对于 Wormhole 协议的发展非常重要。Wormhole 贡献者还对 Cosmos 基础设施进行了战略押注 - Wormhole Guardians 运营<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://wormhole.com/gateway/?ref=wormhole.ghost.io">Wormhole Gateway</a>，这是一个 Cosmos SDK 区块链，可以增加网络的安全性，并充当消息传递和将代币传输到 Cosmos 生态系统的路由器。Wormhole 目前已连接到 9 个 Cosmos 应用链，社区中的许多团队都在 Wormhole 之上构建。在 Cosmos 中，Bad Kids 是最大、参与度最高的 NFT 社区之一。因此，在快照之前加入 Wormhole Discord 并自我分配 Bad Kids 角色的 Bad Kids 持有者有资格获得空投。持有者可以通过网站上的 Discord 连接来检查自己的资格。</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>食品小伙子</strong></h3><p>Backpack 和 Mad Lads NFT 系列背后的团队与 Wormhole 贡献者密切合作，构建多链产品并帮助发展协议。Backpack 通过 Wormhole 提供钱包内跨链转账，Mad Lads 持有者构成了最具活力的 Solana NFT 社区之一。Mad Lads 社区也为 Wormhole 社区 Discord 做出了积极贡献。因此，在快照之前加入 Wormhole Discord 并通过 Matrica 验证的 Mad Lad 拥有者有资格获得本次空投。该社区的分配将是 20% 的流动性和 80% 在一年内每天归属。流动性奖励和既得金额与每个 NFT 息息相关。持有者可以在背包钱包中查看自己的资格。</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>单子</strong></h3><p>Monad 是一个备受期待的、EVM 兼容的 L1 区块链，它将在发布时利用 Wormhole 实现多链功能和跨链传输。Monad 社区是一个活跃且积极参与的用户和开发人员群体，他们关心构建最先进的基础设施以推动行业向前发展。1,081 名 Monad 社区成员将因参与 Wormhole 社区 Discord 而获得奖励。会员可以通过网站上的 Discord 连接来检查自己的资格。</p><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>空投常见问题解答</strong></h2><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>一般的</strong></h3><p><strong>问：在哪里可以查看有关空投的详细信息？</strong></p><p>A：空投详情可以在这篇<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://wormhole.com/w-airdrop-explained/?ref=wormhole.ghost.io">博文</a>中找到。</p><p><strong>问：在哪里可以查看我是否有资格获得本次空投？</strong></p><p>答：请在<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://airdrop.wormhole.com/?ref=wormhole.ghost.io">airdrop.wormhole.com 的</a>空投检查器上检查您的所有钱包和/或Discord 。</p><p><strong>问：文主张？</strong></p><p>答：请关注<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/Wormholecrypto?ref=wormhole.ghost.io">Twitter</a>或<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/wormhole?ref=wormhole.ghost.io">其他社交渠道</a>上的 Wormhole以获取最新信息。</p><p><strong>问：未来还会有空投吗？</strong></p><p>答：请加入 Wormhole Discord 并在<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/Wormholecrypto?ref=wormhole.ghost.io">Twitter</a>和<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://linktr.ee/wormhole?ref=wormhole.ghost.io">其他社交渠道</a>上关注 Wormhole ，以了解未来的任何社区计划。</p><p><strong>问：无人认领的代币会怎样？</strong></p><p>答：空投领取期结束后，所有无人领取的代币将返回到多重签名并保留在未来的社区活动中使用。</p><p><strong>问：我想我应该有资格。我如何提交重新考虑的请求？</strong></p><p>答：我们付出了辛勤的努力，确保没有人被忽视。如果您认为自己应该符合资格但没有，您可以在此处提交请求：<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/forms/d/e/1FAIpQLSeQm7j_NHg6q575EeGls05yjdWRlPE-ObRDbhIKdmakIZ6sqw/viewform?ref=wormhole.ghost.io">此表格</a>。</p><p><strong>问：空投检查器最近一次更新（3 月 11 日）更新了哪些内容？</strong></p><p>答：空投检查器和资格列表的最新更新包括其他用户群体 - 其中包括虫洞研究员和 Degods/y00ts 社区成员等社区团体，以及其他链上用户群体。该检查器网站还收到了多项更新，例如改进了 Sui 和 Algorand 钱包的兼容性。</p><p><strong>问：如果更新后我应该符合资格，但检查器仍然没有显示任何内容，该怎么办？</strong></p><p>答：在最新更新之前检查过资格的用户如果不清除缓存，可能仍然看不到任何内容。请进行硬刷新并再次检查。</p><p><strong>问：为什么奖励会分配到我所有的钱包中？</strong></p><p>**答：**许多用户对将所有奖励归于丢失密钥或安全性受损的钱包的风险表示担忧。因此，奖励被分配到所有用户钱包（发送和接收）中，以最大限度地提高用户领取全部分配的机会。请注意，跨多个链使用的同一 EVM 钱包的奖励被聚合为单个“以太坊”奖励。因此，相对于非 EVM 钱包，用户可能会看到其 EVM 钱包地址的分配量更大。</p><p><strong>问：为什么只有一笔小额交易的钱包才有资格获得部分空投？</strong></p><p>答：奖励分布在所有权集群内的所有发送和接收钱包中，无论该集群内的任何单个钱包可能参与的交易数量如何。在下面的示例中，钱包 E (0x696) 只有一项与其关联的交易。然而，由于所有钱包之间转移的累计价值超过了合格阈值，因此用户 A 符合资格，并且他们的奖励将分配到所有钱包中，包括钱包 E (0x696)。<strong>我们理解这可能会引起混乱，因为用户可能没有意识到分析可能会将其所有权归因于不同生态系统中的所有互连钱包。</strong></p><p>**注意：**鉴于 Wormhole 生态系统的多样性和规模，Wormholescan 和第三方 API 将不会包含用于计算资格的所有信息。</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>代币经济学</strong></h3><p><strong>问：W的总供应量是多少？</strong></p><p>A：W的总供应量为100亿枚。有关更多详细信息，请参阅<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://wormhole.com/wormhole-w-tokenomics/?ref=wormhole.ghost.io">W Tokenomics 博客文章</a>。</p><p><strong>Q：W的初始流通量是如何确定的？</strong></p><p>答：W代币初始流通量为18亿枚。W 是具有 ERC20 和 SPL 表示形式的多链原生代币。供应最初将分布在五个链上：以太坊、Solana、Arbitrum、Optimism 和 Base。</p><p><strong>Q：W的锁定比例是多少，如何释放？</strong></p><p>答：82% 的 W 供应量将在发布时锁定。这笔金额将在四年内解锁。此逐步发布旨在支持 Wormhole 的长期成功和稳定性。<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://wormhole.com/wormhole-w-tokenomics/?ref=wormhole.ghost.io">请在此处</a>阅读有关代币经济学和发布时间表的更多信息。</p><p><strong>问：W代币的分配是怎样的？</strong></p><p>答：W 将分布在六个主要类别：守护节点（5.1%）、社区和发布（17%）、核心贡献者（12%）、生态系统和孵化（31%）、战略网络参与者（11.6%）和基金会财政部（23.3%）。</p><p><strong>问：您能解释一下 W 的“社区和发布”分配情况以及它是如何分配的吗？</strong></p><p>答：“社区和发布”类别将支持 Wormhole 去中心化和无需许可的未来的早期阶段。在分配给该类别的 17% 总量中，11% 将在代币生成活动 (TGE) 中解锁，以促进初始分配阶段，包括与 TGE 相关的空投。这11%中约6.78%将用于本次空投，以奖励积极使用该产品并支持生态系统的社区成员。此次空投是对他们的贡献和参与的直接认可。</p><p>剩余的 6% 的“社区和启动”分配计划在 TGE 后四个月内解锁，与整体代币发行时间表一致。</p><p>“社区和启动”类别的 5%（约占本次空投的 81%）分配给链上 Wormhole 生态系统应用程序的用户。“社区与启动”类别的 1.29%（约占本次空投的 19%）分配给社区成员，例如 Wormhole Discord 的活跃成员、各种 NFT 社区、前 10,000 名 Pyth 质押者以及 Monad 社区，以表彰他们的贡献虫洞社区内的积极支持和参与。Wormhole 基金会致力于奖励活跃的产品用户和 Wormhole 社区成员，因为他们对于 Wormhole 协议的持续发展和成功至关重要。<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://wormhole.com/wormhole-w-tokenomics/?ref=wormhole.ghost.io">在这里阅读有关 W 分配的更多信息</a>。</p>]]></content:encoded>
            <author>xunannan@newsletter.paragraph.com (xunannan)</author>
        </item>
        <item>
            <title><![CDATA[Create a Dynamic NFT]]></title>
            <link>https://paragraph.com/@xunannan/create-a-dynamic-nft</link>
            <guid>jjQi8I0mpTgazucRAKP5</guid>
            <pubDate>Sat, 13 Jan 2024 06:04:10 GMT</pubDate>
            <description><![CDATA[This guide will walk you through creating a dynamic NFT with Space and Time and Chainlink Functions Introduction This guide will walk you through creating a dynamic NFT using Space and Time, and Chainlink Functions. We will create a SwordNFT that&apos;s rating changes based on how the sword is being used in-game. Gaming telemetry in Space and Time is updated and fed to the NFT contract using Chainlink Functions. Here is an example of what the NFT will look like when we&apos;re done. Before we...]]></description>
            <content:encoded><![CDATA[<p>This guide will walk you through creating a dynamic NFT with Space and Time and Chainlink Functions</p><p>Introduction This guide will walk you through creating a dynamic NFT using Space and Time, and Chainlink Functions. We will create a SwordNFT that&apos;s rating changes based on how the sword is being used in-game. Gaming telemetry in Space and Time is updated and fed to the NFT contract using Chainlink Functions.</p><p>Here is an example of what the NFT will look like when we&apos;re done.</p><p>Before we get started, we should answer a couple of important questions.</p><p>What is a dynamic NFT (dNFT)? From a simple view, according to ERC721 (and ERC1155) non-fungible tokens should have a tokenURI function that stores a URL which will return a JSON blob of metadata for a given NFT. That blob usually contains things like a pointer to an image file, NFT name, description, etc. A dNFT is simply an NFT where the metadata for the NFT is designed to change.</p><p>But I thought NFTs weren&apos;t supposed to change! There is nothing in ERC721/ERC1155 that says an NFT&apos;s metadata cannot change. The idea that an NFT&apos;s metadata shouldn&apos;t change likely comes from one specific use case involving permanent digital collectibles. While a full discussion on the topic is beyond the scope of this guide, it&apos;s important to understand that NFTs can take on many forms, and there is an increasing demand for NFTs that can evolve and/or be leveled up. Also, keep in mind that it&apos;s important to think about who (or what) can make changes to an NFT, how those changes can be made, and how long it&apos;s possible to make changes.</p><p>Overview For the guide we will go through the following high-level steps:</p><p>Base Setup &amp; Config Prerequisites Download &amp; install repo Setup env-enc Space and Time Setup Create Table Insert Data Connect SxT to Mumbai via Chainlink Functions Level Up Your SwordNFT</p><ol><li><p>Base Setup &amp; Config ❗ Space and Time and Chainlink Functions are both in beta. It&apos;s probable that updates will be made to one or both that change how steps in this guide work. You can find us on Discord with questions.</p></li></ol><p>Prerequisites You will need beta access to Space and Time and Chainlink Functions.</p><p>If you&apos;re new to SxT, it&apos;s recommended that you start first with our SxT Getting Started Guide. If you&apos;re new to Chainlink Functions, we recommend you start with their Getting Started Guide. Having a basic understanding of how to connect to SxT and how Chainlink Functions work will set you up for success with this guide.</p><p>You will obviously need a wallet address on Polygon Mumbai testnet, with token balances of 2 LINK and 0.2 MATIC.</p><p>Setup Open up a terminal / command window, navigate to a folder where you&apos;d like to run this demo from, and enter the following commands into the terminal window:</p><p>Clone the demo repo from github, which includes all solidity and js files: git clone <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/SxT-Community/SxT-dNFT.git">https://github.com/SxT-Community/SxT-dNFT.git</a> &amp;&amp; cd SxT-DNFT If you don&apos;t have git installed, this page has install instructions..</p><p>Install all node.js dependancies by running: npm install</p><p>One of the packages you install is a handy tool created by Chainlink Labs for encrypting your local environment variables. Please have a look at npx env-enc help to see all available commands.</p><p>Enter npx env-enc set-pw to set your root password (or unlock your encrypted envar file)</p><p>Enter env-enc set to set the following environment variables, which will be used by the above demo. The commandline app will ask for a variable NAME, then VALUE. For each, enter:</p><p>POLYGON_MUMBAI_RPC_URL - RPC_URL for Mumbai network (Infura, Alchemy, etc) used by CL Functions. For example, check out the first two sections of Infura&apos;s &apos;Getting Started&apos; docs. The RPC_URL you&apos;ll need will look something like: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://polygon-mumbai.infura.io/v3/your_api_key">https://polygon-mumbai.infura.io/v3/your_api_key</a> MUMBAI_RPC_URL - RPC_URL used by Hardhat - same URL as above. As of this writing, Hardhat and Chainlink have different environment variables for the RPC endpoint. The value should be 100% identical. PRIVATE_KEY - Private key for your wallet address (with aforementioned 2 LINK and 0.2 MATIC), and should look something like 4bb23044e2b4e1b8e3793d6686306915adcc25e35211f08f91c462b36250ac99 POLYGONSCAN_API_KEY - API Key for Polyscan - optional, but recommended to verify contracts. The API key should look something like: G9JRV6CBJWYMPUGQ7382RKUBNINI44QRUF API_KEY - API Key for Space and Time - required to execute off-chain queries. The API key should look something like: sxt_dMFtbHgkW5_59sND2XMSXuEeOtXzNalSKbvZ API_URL - Space and Time API URL, which contains the gateway / secrets proxy endpoint, where the query is sent. The URL should look something like: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://proxy.api.spaceandtime.app/v1/sql">https://proxy.api.spaceandtime.app/v1/sql</a> 2. Space and Time Setup Setup Data in Space and Time 📘 There are many ways to connect to Space and Time, however the easiest and fastest is via Space and Time Studio.</p><p>Here&apos;s a look at the gaming telemetry table SxT we&apos;re going to use:</p><p>Table: SXTNFT.GAME_TELEMETRY_ARTHUR</p><p>ID GamerId ActionType AchievementId collectableId Level ItemId points 1 1 Game Started 1 SwordNFT 3 SwordNFT 1 Attack 1 SwordNFT 3 SwordNFT 1 Defense 1 SwordNFT 2 4 1 Kill King 1 SwordNFT 100 5 1 Attack 1 SwordNFT 3 6 1 Collect PotionA 2 SwordNFT 100 7 1 Collect PotionB 2 SwordNFT 150 8 1 Attack 3 SwordNFT 9 The table above is Public_Write meaning anyone can read and modify data. This is ideal for a public demo since it means you can use this table for your demo as-is. However, others can also, and you may have others working on the demo simultaneously, leading to unexpected results. If you want to create your version of the table, use this recipe for creating tables with this SQL: SQL</p><p>CREATE TABLE .GAME_TELEMETRY_ARTHUR ( ID INTEGER, GamerId INTEGER, ActionType VARCHAR, AchievementId VARCHAR, collectableId VARCHAR, Level_ INTEGER, ItemId VARCHAR, Points INTEGER, PRIMARY KEY (ID) ) WITH &quot;public_key=, access_type=public_write, template=PARTITIONED, atomicity=transactional&quot; Delete any records that may be in the table already using the DML endpoint: SQL Delete From SXTNFT.GAME_TELEMETRY_ARTHUR INSERT data - This is where a game would be inserting its telemetry into SxT: SQL INSERT INTO SXTNFT.GAME_TELEMETRY_ARTHUR (ID, GamerId, ActionType, AchievementId, collectableId, Level_, ItemId, Points) VALUES (1, 1, &apos;Game Started&apos;, &apos;&apos;, &apos;&apos;, 1, &apos;SwordNFT&apos;, 3), (2, 1, &apos;Attack&apos;, &apos;&apos;, &apos;&apos;, 1, &apos;SwordNFT&apos;, 3), (3, 1, &apos;Defense&apos;, &apos;&apos;, &apos;&apos;, 1, &apos;SwordNFT&apos;, 2), (4, 1, &apos;Kill&apos;, &apos;King&apos;, &apos;&apos;, 1, &apos;SwordNFT&apos;, 100), (5, 1, &apos;Attack&apos;, &apos;&apos;, &apos;&apos;, 1, &apos;SwordNFT&apos;, 3); View data that is loaded: SQL SELECT * from SXTNFT.GAME_TELEMETRY_ARTHUR Also, we can run logic to determine the SwordNFT&apos;s current level: SQL SELECT /*! USE ROWS */ ItemId, SUM(Points), CASE WHEN SUM(Points) BETWEEN 100 AND 150 THEN 1 WHEN SUM(Points) BETWEEN 151 AND 300 THEN 2 WHEN SUM(Points) &gt; 300 THEN 3 ELSE &apos;&apos; END AS SWORDFROM SXTNFT.GAME_TELEMETRY_ARTHUR GROUP BY ItemId; Should return: Text ITEMID |SUM(POINTS)|SWORD| --------+-----------+-----+ SwordNFT|111 |1 | 3. Connect SxT to Mumbai via Chainlink Functions Now that we have our gaming telemetry table in SxT, we&apos;re going to connect everything up. The following steps were adapted from the Chainlink Functions repo and might be useful as a resource if you run into any issues getting Chainlink Functions setup. The first thing we&apos;re going to do is simulate the full interaction. This is helpful because it allows us to identify potential issues before we deploy our dNFT contract. In your terminal window (same one where you set your environment variables above via env-enc set) enter the following steps: Test/Simulate npx hardhat functions-simulate-script Deploy our contract to Mumbai: npx hardhat functions-deploy-consumer --network polygonMumbai --verify true Get the contract address from the result of the previous step and set a temporary envar: export CONTRACT_ADDRESS= Create and fund a new Functions billing subscription using the Chainlink Functions UI and add the deployed consumer contract as an authorized consumer to your subscription. You can also do this programmatically with: npx hardhat functions-sub-create --network polygonMumbai --amount 2 --contract $CONTRACT_ADDRESS Get the subscription id and set a shell envar for: export SUB_ID= Prompt the NFT to call Chainlink Functions request to query Space and Time: npx hardhat functions-request --network polygonMumbai --contract $CONTRACT_ADDRESS --subid $SUB_ID Now is an excellent time to pull up your dNFT contract on Rarible! Enter into the terminal:open <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.rarible.com/token/polygon/$CONTRACT_ADDRESS:0">https://testnet.rarible.com/token/polygon/$CONTRACT_ADDRESS:0</a> or go to the URL directly, replacing $CONTRACT_ADDRESS with the contract address from step #3 NOTE: If you get an error about your contract not being added to the subscription, you can add it as a Consumer to your Subscription via the web UI or the CLI like this: npx hardhat functions-sub-add --network polygonMumbai --contract $CONTRACT_ADDRESS --subid $SUB_ID Level Up Your dNFT Sword Now it&apos;s time to level up your swordNFT based on new gaming telemetry loaded into Space and Time. Add more game telemetry to SxT (sword 2) SQL INSERT INTO SXTNFT.GAME_TELEMETRY_ARTHUR (ID, GamerId, ActionType, AchievementId, collectableId, Level_, ItemId, Points) VALUES (6, 1, &apos;Collect&apos;, &apos;&apos;, &apos;PotionA&apos;, 2, &apos;SwordNFT&apos;, 100); SQL SELECT /*! USE ROWS */ ItemId, SUM(Points), CASE WHEN SUM(Points) BETWEEN 0 AND 150 THEN 1 WHEN SUM(Points) BETWEEN 151 AND 300 THEN 2 WHEN SUM(Points) &gt; 300 THEN 3 ELSE &apos;&apos; END AS SWORDFROM SXTNFT.GAME_TELEMETRY_ARTHUR GROUP BY ItemId; Game prompts NFT to re-query Space and Time Test/Simulate npx hardhat functions-simulate-script Prompt the NFT to call Chainlink Functions request to query Space and Time: npx hardhat functions-request --network polygonMumbai --contract $CONTRACT_ADDRESS --subid $SUB_ID Let&apos;s look at the NFT again, to see it change! Just enter into the terminal: open <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://testnet.rarible.com/token/polygon/$CONTRACT_ADDRESS:0">https://testnet.rarible.com/token/polygon/$CONTRACT_ADDRESS:0</a> or go to the URL directly, replacing $CONTRACT_ADDRESS with the contract address from step #3 Add More Game Telemetry to SxT (sword 3) As the game is played, more telemetry is loaded into Space and Time! SQL INSERT INTO SXTNFT.GAME_TELEMETRY_ARTHUR(ID, GamerId, ActionType, AchievementId, collectableId, Level_, ItemId, Points) VALUES (7, 1, &apos;Collect&apos;, &apos;&apos;, &apos;PotionB&apos;, 2, &apos;SwordNFT&apos;, 150), (8, 1, &apos;Attack&apos;, &apos;&apos;, &apos;&apos;, 3, &apos;SwordNFT&apos;, 9); View the insert with the following: SELECT * from SXTNFT.GAME_TELEMETRY_ARTHUR Or: SQL SELECT /*! USE ROWS */ ItemId, SUM(Points), CASE WHEN SUM(Points) BETWEEN 100 AND 150 THEN 1 WHEN SUM(POINTS) BETWEEN 151 AND 300 THEN 2 WHEN SUM(POINTS) &gt; 300 THEN 3 ELSE 1 END AS SWORDFROM SXTNFT.GAME_TELEMETRY_ARTHUR GROUP BY ItemId; Push New Telemetry to Mumbai Test/Simulate npx hardhat functions-simulate-script Prompt the NFT to call Chainlink Functions request to query Space and Time: npx hardhat functions-request --network polygonMumbai --contract $CONTRACT_ADDRESS --subid $SUB_ID Head back to Rarible to see your level three swordNFT!</p>]]></content:encoded>
            <author>xunannan@newsletter.paragraph.com (xunannan)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/851e07121363074101c4e539d9ae7d3ad944e2ea05a722ba4e0f10f937390e60.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Space and Time 创建和管理表]]></title>
            <link>https://paragraph.com/@xunannan/space-and-time</link>
            <guid>7RU90d3C0GHLQJ50VEdb</guid>
            <pubDate>Sat, 13 Jan 2024 05:59:40 GMT</pubDate>
            <description><![CDATA[概述（表安全模型）背景Space and Time 为用户提供了几种保护平台数据安全的方法。最基本的形式是通过加密（数据加扰）来保护数据。除了简单的加密之外，我们的解决方案还包括通过饼干进行细粒度访问控制的去中心化授权解决方案。关于饼干授权的更多详细信息，请参见相关文档。安全模型安全模型决定如何在平台内保护数据库资源（表、视图等）。作为配置新资源的一部分，用户必须选择一种可用的安全模型来定义平台和更广泛的社区如何与其交互。通过将安全模型的范围限制为单个资源，用户可以自由地共享和/或保护他们认为合适的数据。下面概述了每个可用的安全模型：公共 - 数据未加密，仅限于无访问控制许可 - 数据未加密，完全访问控制加密——数据加密，完全访问控制无论安全模型如何，在通过参数创建表时，您始终需要提供饼干公钥：public_key SQLCREATE TABLE MY_SCHEMA.MY_TABLE( id int, name varchar, PRIMARY KEY (id) ) WITH "public_key=&#x3C;biscuit_pub_key_here>"; 这是因为DDL操作总...]]></description>
            <content:encoded><![CDATA[<h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">概述（表安全模型）</h1><h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">背景</h1><p>Space and Time 为用户提供了几种保护平台数据安全的方法。最基本的形式是通过加密（数据加扰）来保护数据。除了简单的加密之外，我们的解决方案还包括通过饼干进行细粒度访问控制的去中心化授权解决方案。关于饼干授权的更多详细信息，请参见相关<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.spaceandtime.io/docs/biscuit-authorization">文档</a>。</p><h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">安全模型</h1><p>安全模型决定如何在平台内保护数据库资源（表、视图等）。作为配置新资源的一部分，用户必须选择一种可用的安全模型来定义平台和更广泛的社区如何与其交互。通过将安全模型的范围限制为单个资源，用户可以自由地共享和/或保护他们认为合适的数据。下面概述了每个可用的安全模型：</p><ul><li><p>公共 - 数据未加密，仅限于无访问控制</p></li><li><p>许可 - 数据未加密，完全访问控制</p></li><li><p>加密——数据加密，完全访问控制</p></li></ul><p>无论安全模型如何，在通过参数创建表时，您始终需要提供饼干公钥：<code>public_key</code></p><p>SQL</p><pre data-type="codeBlock" text="CREATE TABLE MY_SCHEMA.MY_TABLE(
    id    int,
    name  varchar,
    PRIMARY KEY (id)
) WITH &quot;public_key=&lt;biscuit_pub_key_here&gt;&quot;;
"><code><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> MY_SCHEMA.MY_TABLE(
    id    <span class="hljs-type">int</span>,
    name  <span class="hljs-type">varchar</span>,
    <span class="hljs-keyword">PRIMARY</span> KEY (id)
) <span class="hljs-keyword">WITH</span> "public_key=&#x3C;biscuit_pub_key_here>";
</code></pre><p>这是因为DDL操作总是需要饼干授权，因此需要为每个表配置公私钥对。</p><h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">公共餐桌</h1><p>此模型在平台级别最容易支持，并且需要最终用户最少的努力来启用授权和共享。它非常适合旨在共享的数据集（例如我们的区块链数据）。它还可以最轻松地使所有者将其数据货币化。公共表数据未加密，任何经过身份验证的用户都可以访问。</p><p>公共表可以配置为以下三个访问级别之一：</p><ul><li><p><code>public_read</code>- 允许经过身份验证的用户进行表查询 ( )；所有其他操作都需要授权<code>SELECT</code></p></li><li><p><code>public_append</code>- 允许经过身份验证的用户进行表查询和追加（, ）；所有其他操作都需要授权<code>SELECTINSERT</code></p></li><li><p><code>public_write</code>- 允许经过身份验证的用户进行表查询和 DML（、、、、、） ；所有其他操作都需要授权<code>SELECTINSERTUPDATEMERGEDELETE</code></p></li></ul><p>要创建公共表，请在 DDL CREATE 命令中通过参数指定访问级别：<code>access_type</code></p><p>SQL</p><pre data-type="codeBlock" text="CREATE TABLE MY_NAMESPACE.MY_TABLE(
    id    int,
    name  varchar,
    PRIMARY KEY (id)
) WITH &quot;access_type=public_read&quot;;
"><code><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> MY_NAMESPACE.MY_TABLE(
    id    <span class="hljs-type">int</span>,
    name  <span class="hljs-type">varchar</span>,
    <span class="hljs-keyword">PRIMARY</span> KEY (id)
) <span class="hljs-keyword">WITH</span> "access_type=public_read";
</code></pre><p>关于公共模型的最后一点是：资源所有者始终保持对 DDL 的控制（即，未经明确授权，任何用户都不能对任何资源执行 DDL 语句）。</p><h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">权限表</h1><p>该模型在平台级别也很容易支持，但需要最终用户付出额外的努力才能实现授权和共享。权限表数据也未加密，但只有显式授权才能访问。在这种模型中，存储在集群中的数据仍然可以被运营商窥探，但其访问仅限于平台用户。为了启用授权和共享，用户必须明确地创建和共享饼干。</p><p>要创建权限表，请在 DDL命令中通过 access_type 参数指定访问级别：<code>CREATE</code></p><p>SQL</p><pre data-type="codeBlock" text="CREATE TABLE MY_NAMESPACE.MY_TABLE(
    id    int,
    name  varchar,
    PRIMARY KEY (id)
) WITH &quot;access_type=permissioned&quot;;
"><code><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> MY_NAMESPACE.MY_TABLE(
    id    <span class="hljs-type">int</span>,
    name  <span class="hljs-type">varchar</span>,
    <span class="hljs-keyword">PRIMARY</span> KEY (id)
) <span class="hljs-keyword">WITH</span> "access_type=permissioned";
</code></pre><h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">加密表</h1><p>该模型需要平台和最终用户付出额外的努力来支持。尽管它确实需要额外的延迟和计算，但它确实提供了最强的安全保证。存储在集群中的数据是加密的，加解密密钥保留在集群外部，防止操作员检索解密的数据。平台如何处理加密数据取决于用户是否实施自己的加密。</p><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">用户管理的加密</h2><p>用户始终能够实现自己的加密方案。在这种情况下，不需要额外的平台交互或配置，并且可以在公共或许可安全模型之上实现加密（因为加密完全存在于平台之外）。一个重要的注意事项是，用户将需要处理与加密数据集上的 SQL 一致性相关的各种复杂问题（例如，过滤子句不一定会以相同的方式工作）。此外，用户有责任保证所有数据在进入平台之前都经过加密。未加密的敏感数据可能会被删除，但不能保证在此之前不会被捕获。</p><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">平台管理的加密</h2><p>如果用户想要加密数据但不想自己实现，他们可以依赖SxT平台安全作为可选服务。对于平台管理的加密，用户必须首先通过许可模型创建表，然后可以在其表上启用加密。</p><blockquote><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">📘</h2><p>我们正在致力于加密配置的前端支持。请尽快回来查看屏幕截图和更新的演练。</p></blockquote><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">设置</h3><p>作为前提，用户应该已经创建了他们的表并生成了适当的饼干。使用 dapp 前端，用户可以查看其表的现有加密配置并打开页面以开始配置新表。打开页面后，用户选择要添加加密的表、每个表中的哪些列应加密以及他们希望对每个列使用哪种类型的加密。有关列加密方案的详细信息将很快添加。</p><blockquote><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">🚧</h2><p>必须在尚未加密的表上设置加密。加密一旦配置，就无法更改或删除。</p></blockquote><blockquote><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">🚧</h2><p>在设置加密之前添加到表中的数据不会自动加密。</p></blockquote><blockquote><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">📘</h2><p>只能在同一命名空间/架构中的表上配置加密。如果您希望支持连接两个表之间的加密列，请确保两个表位于同一命名空间中。</p></blockquote><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">运行</h3><p>在目标表上配置加密后，用户现在可以透明地在传入数据时对其数据进行加密，并在传出时对其进行解密。标准交互所需的唯一更改是更改所使用的 SQL API 端点。</p><ul><li><p>对于查询结果解密，使用API<code>/decrypt/dql</code></p></li><li><p>对于数据操作加密，请使用API<code>/encrypt/dml</code></p></li></ul><blockquote><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">📘</h2><p>我们的数据加密/解密即将推出！稍后回来查看 API 规范</p></blockquote>]]></content:encoded>
            <author>xunannan@newsletter.paragraph.com (xunannan)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/851e07121363074101c4e539d9ae7d3ad944e2ea05a722ba4e0f10f937390e60.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[《Space and Time：连接Web2和Web3的新纪元》]]></title>
            <link>https://paragraph.com/@xunannan/space-and-time-web2-web3</link>
            <guid>vU4nSZtsS2mN4KzCg3Tu</guid>
            <pubDate>Sat, 13 Jan 2024 05:44:28 GMT</pubDate>
            <description><![CDATA[跨越时间与空间 space and time ，让我们开启Web2和Web3的新纪元！下面为大家介绍space and time 这个具有创新技术理念的项目。 https://www.spaceandtime.io/ 在WEB3浪潮中，Web3不仅仅是技术创新，更是一种理念，倡导每个人都应该从网络所有权和运营的中心化向去中心化社区的转变，实现更透明、可验证的数据管理，使用户重新获得对其数据的掌控权。 对于远离Web3世界的人来说，他们面临着巨大的挑战。新手必须首先理解实质性的技术差异，然后协调全新的思维模式，以适应这个迅速成熟的行业，其中几乎每天都有新的解决方案涌入市场。 尽管空间和时间（SxT）无法完全解决这些挑战，但通过引入一种新的范例——数据仓库，它能够帮助传统的Web2企业更迅速地理解这种新的运营现实。 数据赋能Web3时代 随着传统企业对Web3技术的探索，压力不断增加。与过去的技术变革不同，Web3代表了计算领域的另一次范式转变，涉及基础设施、软件、所有权和价值创造的全新思维方式。在这个领域，市场不断奖励领先采用的公司，惩罚落后的公司。 在SxT的上市策略中，我们的目...]]></description>
            <content:encoded><![CDATA[<p>跨越时间与空间 space and time ，让我们开启Web2和Web3的新纪元！下面为大家介绍space and time 这个具有创新技术理念的项目。</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.spaceandtime.io/">https://www.spaceandtime.io/</a></p><p>在WEB3浪潮中，Web3不仅仅是技术创新，更是一种理念，倡导每个人都应该从网络所有权和运营的中心化向去中心化社区的转变，实现更透明、可验证的数据管理，使用户重新获得对其数据的掌控权。</p><p>对于远离Web3世界的人来说，他们面临着巨大的挑战。新手必须首先理解实质性的技术差异，然后协调全新的思维模式，以适应这个迅速成熟的行业，其中几乎每天都有新的解决方案涌入市场。</p><p>尽管空间和时间（SxT）无法完全解决这些挑战，但通过引入一种新的范例——数据仓库，它能够帮助传统的Web2企业更迅速地理解这种新的运营现实。</p><p><strong>数据赋能Web3时代</strong></p><p>随着传统企业对Web3技术的探索，压力不断增加。与过去的技术变革不同，Web3代表了计算领域的另一次范式转变，涉及基础设施、软件、所有权和价值创造的全新思维方式。在这个领域，市场不断奖励领先采用的公司，惩罚落后的公司。</p><p>在SxT的上市策略中，我们的目标是帮助Web3原生公司和Web2企业简化数据集成，提供上下文，更好地理解Web3的运营方式。</p><p><strong>融合与差异：SxT的独特之处</strong></p><p>SxT既是事务数据存储，又是数据仓库，通过Web3分布式计算技术和开源数据技术实现。它的核心是一个符合ANSI标准的SQL数据库，使企业IT领域的人感到非常熟悉。与传统的SQL数据库不同，SxT是一种去中心化应用程序，是一个集群的集群。</p><p>SxT与Web3最大的不同在于，各个集群都是去中心化的，任何人都可以成为集群运营商，并扩展SxT网络。通过利用区块链、密码学和加密技术，SxT实现了安全地分发、存储和查询数据，返回加密保证。</p><p><strong>保护开放网络上的数据安全</strong></p><p>SxT提供了两种解决方案来保护数据安全，取决于数据的敏感性和Web3的采用曲线。一是端到端加密，对数据进行加密，使得外部人无法读取数据。二是私有节点集群，允许企业在内部构建自己的SxT集群，服务于内部请求。</p><p><strong>透明Web3：数据的新境界</strong></p><p>Web3标志着从数据保护主义到数据透明度的转变，得益于区块链的不变性。Web3参与者愿意共享许多可操作的数据集，这与传统的数据保护主义有很大的不同。</p><p>SxT将传统的DWH数据与Web3/区块链数据合并，鼓励数据提供商在适当的情况下透明地共享数据集。Web3公司在共享和保护数据方面进行了深思熟虑，不再默认将数据保护为首要考虑。</p><p><strong>总结Web3：迎接未来的数据时代</strong></p><p>Web3正在迅速成熟，对于具有前瞻性的传统组织来说，涉足这个领域并了解新技术和运营期望变得至关重要。SxT通过为Web3和Web2提供实际价值，帮助企业探索新的领域，是一个独特的工具。尽管Web3是新的，但它正在成熟，并为早期采用者提供了巨大的潜在价值，很可能成为未来生态系统的重要组成部分。</p>]]></content:encoded>
            <author>xunannan@newsletter.paragraph.com (xunannan)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/a48a518d906d191a86c496d3df88df7ce099a62dfdabca6256dea17cf2b3d83a.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[“天行健，君子以自强不息；地势坤，君子以厚德载物”，意谓：天的运动刚强劲健，相应于此，君子处事，应像天一样，自我力求进步，刚毅坚卓，发奋图强，永不停息；大地的气势厚实和顺，君子应增厚美德，容载万物。出自《周易》。]]></title>
            <link>https://paragraph.com/@xunannan/mwTE33neADWu66i5hQyg</link>
            <guid>mwTE33neADWu66i5hQyg</guid>
            <pubDate>Fri, 05 Aug 2022 00:24:55 GMT</pubDate>
            <description><![CDATA[《周易》]]></description>
            <content:encoded><![CDATA[<p>《周易》</p>]]></content:encoded>
            <author>xunannan@newsletter.paragraph.com (xunannan)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/ba2e8396ab197213dfc53163fb19855688328797f252e7229ad81d608f58ae11.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[《江城子·密州出猎》]]></title>
            <link>https://paragraph.com/@xunannan/EOs6ZtCBMSwvQLsjVFWw</link>
            <guid>EOs6ZtCBMSwvQLsjVFWw</guid>
            <pubDate>Fri, 06 May 2022 08:15:52 GMT</pubDate>
            <description><![CDATA[老夫聊发少年狂，左牵黄，右擎苍，锦帽貂裘，千骑卷平冈。为报倾城随太守，亲射虎，看孙郎。 酒酣胆尚开微霜，又望何胸何胸持节云中，冯唐挽弓如满月，西北射天狼。]]></description>
            <content:encoded><![CDATA[<p>老夫聊发少年狂，左牵黄，右擎苍，锦帽貂裘，千骑卷平冈。为报倾城随太守，亲射虎，看孙郎。</p><p>酒酣胆尚开微霜，又望何胸何胸持节云中，冯唐挽弓如满月，西北射天狼。</p>]]></content:encoded>
            <author>xunannan@newsletter.paragraph.com (xunannan)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/60d24777fe8d5d8e3dd970df05bc38139450dc4970cd4065ecf7d049ea02f722.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Monster KIKI]]></title>
            <link>https://paragraph.com/@xunannan/monster-kiki</link>
            <guid>PdoxJ2ZEV9tdzrAz0bgm</guid>
            <pubDate>Sat, 11 Dec 2021 15:08:32 GMT</pubDate>
            <content:encoded><![CDATA[<figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/75b06b1f2f54baeb20ae5046f93579db34f3f97c7f06ba497d2de09999dd4ed6.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure>]]></content:encoded>
            <author>xunannan@newsletter.paragraph.com (xunannan)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/80f016722fbb850a5a84e37f65929aa4de134ae377003b28e0533d3c4c47a142.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[It's for the airdrop]]></title>
            <link>https://paragraph.com/@xunannan/it-s-for-the-airdrop</link>
            <guid>XPyQrDQQgKFTcb3k3ZXc</guid>
            <pubDate>Sat, 27 Nov 2021 18:02:06 GMT</pubDate>
            <description><![CDATA[It&apos;s for the airdrop]]></description>
            <content:encoded><![CDATA[<p>It&apos;s for the airdrop</p>]]></content:encoded>
            <author>xunannan@newsletter.paragraph.com (xunannan)</author>
        </item>
    </channel>
</rss>