
搜索引擎Typesense的使用
注: 使用语言 python一:Typesense介绍Typesense将数据保存在磁盘当中,建立的索引保存内存中 Typesense是一个开源的、有容错能力的搜索引擎,针对实时(通常低于 50 毫秒)搜索即键入体验和开发人员生产力进行了优化。 Typesense做了一个对于其他搜索引擎的对比。(文档版,表格版) 索引数据速度以及资源占用: 对于220万份食谱(一份食谱相当于下文中提到的一个document)在 Typesense 中进行索引时占用了大约 900MB 的 RAM(内存)花了 3.6 分钟索引所有 220 万条记录在具有 4 个 vCPU 的服务器上,Typesense 每秒能够处理104 个并发搜索查询,平均搜索处理时间为11毫秒。RAM(内存)方面:如果数据量为 X MB大小,则需要占用2X-3XRAM(2-3倍数据量大小的占用) 如需深入了解可以查阅官方文档二:Typesense的用法1:使用typesense有两种方法使用自带的云服务,配置运行简单(收费)在本地安装typesense,自己维护配置(本文使用这种方法)2:安装启动typesense(1):下载...

Mastodon 和 Nostr:两种不同的社交产品,一样的去中心化愿景
概述:本文将分析和讲解Mastodon和Nostr这两个社交媒体平台,重点关注它们的产品应用和技术层面,以了解它们如何实现去中心化社交,并探讨它们在这方面的优势。我们将深入了解它们的架构设计和实现思路,并比较它们在用户体验、隐私保护、安全性等方面的差异。通过本文的分析和总结,读者将更好地了解这两个平台,以及它们在去中心化社交方面的贡献和发展。MastodonMastodon(长毛象)成立于2016年,是由Eugen Rochko创建的一个开源的微博客(microblog)平台,旨在为用户提供去中心化、隐私保护的社交体验。首先对涉及到的一些名词进行简单解释:联邦(federation):联邦是去中心化的一种形式。在联邦中,不是所有人共同使用一个中心服务,而是使用多个不限人数的服务器。ActivityPub:Mastodon使用一种标准化的、开放的协议来实现站点之间的互动,这种协议叫做ActivityPub。任何通过ActivityPub实现互联的软件都可以与Mastodon无缝通信,就像Mastodon站点之间的通信一样。实例(instance):每个人都可以在自己服务器上配置运行...

使用 The Graph 获取各大元宇宙项目交易信息
The graph 工作原理 Graph 根据subgraph描述(称为subgraph.graphq)学习什么以及如何索引以太坊数据。子图描述定义了subgraph感兴趣的智能合约,这些合约中要关注的事件,以及如何将事件数据映射到 The Graph 将存储在其数据库中的数据。该流程遵循以下步骤:去中心化应用程序通过智能合约上的交易将数据添加到以太坊。智能合约在处理交易时发出一个或多个事件。Graph Node 不断地扫描以太坊以寻找新的块以及它们可能包含的子图的数据。Graph Node 在这些块中为您的子图查找 Ethereum 事件并运行您提供的映射处理程序。映射是一个 WASM 模块,它创建或更新 Graph Node 存储的数据实体以响应以太坊事件。去中心化应用程序使用节点的GraphQL 端点查询 Graph 节点以获取从区块链索引的数据。Graph 节点反过来将 GraphQL 查询转换为对其底层数据存储的查询,以便利用存储的索引功能获取此数据。去中心化应用程序在丰富的 UI 中为最终用户显示这些数据,他们使用这些数据在以太坊上发布新交易。循环重复 (来自The ...

搜索引擎Typesense的使用
注: 使用语言 python一:Typesense介绍Typesense将数据保存在磁盘当中,建立的索引保存内存中 Typesense是一个开源的、有容错能力的搜索引擎,针对实时(通常低于 50 毫秒)搜索即键入体验和开发人员生产力进行了优化。 Typesense做了一个对于其他搜索引擎的对比。(文档版,表格版) 索引数据速度以及资源占用: 对于220万份食谱(一份食谱相当于下文中提到的一个document)在 Typesense 中进行索引时占用了大约 900MB 的 RAM(内存)花了 3.6 分钟索引所有 220 万条记录在具有 4 个 vCPU 的服务器上,Typesense 每秒能够处理104 个并发搜索查询,平均搜索处理时间为11毫秒。RAM(内存)方面:如果数据量为 X MB大小,则需要占用2X-3XRAM(2-3倍数据量大小的占用) 如需深入了解可以查阅官方文档二:Typesense的用法1:使用typesense有两种方法使用自带的云服务,配置运行简单(收费)在本地安装typesense,自己维护配置(本文使用这种方法)2:安装启动typesense(1):下载...

Mastodon 和 Nostr:两种不同的社交产品,一样的去中心化愿景
概述:本文将分析和讲解Mastodon和Nostr这两个社交媒体平台,重点关注它们的产品应用和技术层面,以了解它们如何实现去中心化社交,并探讨它们在这方面的优势。我们将深入了解它们的架构设计和实现思路,并比较它们在用户体验、隐私保护、安全性等方面的差异。通过本文的分析和总结,读者将更好地了解这两个平台,以及它们在去中心化社交方面的贡献和发展。MastodonMastodon(长毛象)成立于2016年,是由Eugen Rochko创建的一个开源的微博客(microblog)平台,旨在为用户提供去中心化、隐私保护的社交体验。首先对涉及到的一些名词进行简单解释:联邦(federation):联邦是去中心化的一种形式。在联邦中,不是所有人共同使用一个中心服务,而是使用多个不限人数的服务器。ActivityPub:Mastodon使用一种标准化的、开放的协议来实现站点之间的互动,这种协议叫做ActivityPub。任何通过ActivityPub实现互联的软件都可以与Mastodon无缝通信,就像Mastodon站点之间的通信一样。实例(instance):每个人都可以在自己服务器上配置运行...

使用 The Graph 获取各大元宇宙项目交易信息
The graph 工作原理 Graph 根据subgraph描述(称为subgraph.graphq)学习什么以及如何索引以太坊数据。子图描述定义了subgraph感兴趣的智能合约,这些合约中要关注的事件,以及如何将事件数据映射到 The Graph 将存储在其数据库中的数据。该流程遵循以下步骤:去中心化应用程序通过智能合约上的交易将数据添加到以太坊。智能合约在处理交易时发出一个或多个事件。Graph Node 不断地扫描以太坊以寻找新的块以及它们可能包含的子图的数据。Graph Node 在这些块中为您的子图查找 Ethereum 事件并运行您提供的映射处理程序。映射是一个 WASM 模块,它创建或更新 Graph Node 存储的数据实体以响应以太坊事件。去中心化应用程序使用节点的GraphQL 端点查询 Graph 节点以获取从区块链索引的数据。Graph 节点反过来将 GraphQL 查询转换为对其底层数据存储的查询,以便利用存储的索引功能获取此数据。去中心化应用程序在丰富的 UI 中为最终用户显示这些数据,他们使用这些数据在以太坊上发布新交易。循环重复 (来自The ...
Share Dialog
Share Dialog

Subscribe to Yooma

Subscribe to Yooma
<100 subscribers
<100 subscribers
PixeLAW Core
paint、snake、2048、15puzzle、pop star
在开发这些游戏中体验到的MUD的优点(以下仅对我们所使用到的方面进行评价,可能并不全面):
数据处理和同步的便利性
在构建全链游戏时,智能合约的编写只是其中的一部分。然而,处理前端数据获取和页面渲染等任务却并非易事。传统的方法中,数据结构由合约定义,并存储在链上,而前端则需要通过RPC获取并处理这些数据,这既效率低下又复杂。然而,MUD框架提供了大量开箱即用的功能,利用标准化存储协议构建了熟悉的数据模型。这样它提供了一个索引器,使得前端程序可以轻松地获取链上数据并保持与链上数据的同步。这使得开发变得更加便捷和高效。
减少开发成本和学习曲线
另一个MUD框架的优点在于,如果不使用它,构建全链游戏将会面临巨大的挑战。以 pixeLAW 为例,从零开始构建前端、后端以及二者之间的交互,还需考虑合约中的访问权限控制和数据处理等方面,这将需要大量精力和时间。前端部分,本身对于前端不熟练的我,需要掌握如何构建页面、如何处理数据索引以及如何与智能合约进行交互等技能,这些都是需要付出学习成本的。而使用MUD框架,我只需专注于游戏逻辑功能的开发,极大地减少了开发成本和学习曲线。我可以专心且高效地发挥自己的专长,从而开发出一个完整的全链应用。
自由选择前端框架
最后,MUD框架的另一个优势在于,它并不限制我们在前端开发中使用的框架。根据项目需求和个人偏好,我们可以自由选择MUD所支持的优秀框架,如React或Vue等,来进行页面渲染,从而满足项目的需求。
Solidity语言的限制
在开发2048、15puzzle以及pop star等游戏时,我们发现需要使用数组来实现游戏的逻辑。然而,考虑到gas的消耗以及数据的储存,使用MUD框架后,其中的store功能会对数据进行存储,使得我们不再需要在合约中定义storage类型的数组来存放数据。尽管如此,在处理游戏逻辑时,我们仍然需要使用一些临时的数组变量,这些变量通常被定义为memory类型。然而,Solidity语言中,如果一个数组被定义为memory类型,则无法使用push操作向其添加数据。此外,由于游戏逻辑中某个场景无法确定数组的固定长度,因此我们不得不使用动态长度数组,这增加了开发的复杂度。
对于MUD:
在开发pop star过程中,我们计划使用二维数组。当我们获取到用户点击的位置后(x,y),可以直接从二维数组中获取相应位置的值进行处理。然而,MUD框架的store配置并未包含对二维数组等复杂数据结构的支持,如struct、string[]和bytes[]等。因此,在开发过程中,我们不得不额外处理这些情况。尽管如此,这些限制对我们的开发影响并不是绝对巨大的。MUD框架提供的store功能以及前端的索引器等开箱即用的功能,仍然为我们的开发速度和成本带来了积极的影响。
PixeLAW Core
paint、snake、2048、15puzzle、pop star
在开发这些游戏中体验到的MUD的优点(以下仅对我们所使用到的方面进行评价,可能并不全面):
数据处理和同步的便利性
在构建全链游戏时,智能合约的编写只是其中的一部分。然而,处理前端数据获取和页面渲染等任务却并非易事。传统的方法中,数据结构由合约定义,并存储在链上,而前端则需要通过RPC获取并处理这些数据,这既效率低下又复杂。然而,MUD框架提供了大量开箱即用的功能,利用标准化存储协议构建了熟悉的数据模型。这样它提供了一个索引器,使得前端程序可以轻松地获取链上数据并保持与链上数据的同步。这使得开发变得更加便捷和高效。
减少开发成本和学习曲线
另一个MUD框架的优点在于,如果不使用它,构建全链游戏将会面临巨大的挑战。以 pixeLAW 为例,从零开始构建前端、后端以及二者之间的交互,还需考虑合约中的访问权限控制和数据处理等方面,这将需要大量精力和时间。前端部分,本身对于前端不熟练的我,需要掌握如何构建页面、如何处理数据索引以及如何与智能合约进行交互等技能,这些都是需要付出学习成本的。而使用MUD框架,我只需专注于游戏逻辑功能的开发,极大地减少了开发成本和学习曲线。我可以专心且高效地发挥自己的专长,从而开发出一个完整的全链应用。
自由选择前端框架
最后,MUD框架的另一个优势在于,它并不限制我们在前端开发中使用的框架。根据项目需求和个人偏好,我们可以自由选择MUD所支持的优秀框架,如React或Vue等,来进行页面渲染,从而满足项目的需求。
Solidity语言的限制
在开发2048、15puzzle以及pop star等游戏时,我们发现需要使用数组来实现游戏的逻辑。然而,考虑到gas的消耗以及数据的储存,使用MUD框架后,其中的store功能会对数据进行存储,使得我们不再需要在合约中定义storage类型的数组来存放数据。尽管如此,在处理游戏逻辑时,我们仍然需要使用一些临时的数组变量,这些变量通常被定义为memory类型。然而,Solidity语言中,如果一个数组被定义为memory类型,则无法使用push操作向其添加数据。此外,由于游戏逻辑中某个场景无法确定数组的固定长度,因此我们不得不使用动态长度数组,这增加了开发的复杂度。
对于MUD:
在开发pop star过程中,我们计划使用二维数组。当我们获取到用户点击的位置后(x,y),可以直接从二维数组中获取相应位置的值进行处理。然而,MUD框架的store配置并未包含对二维数组等复杂数据结构的支持,如struct、string[]和bytes[]等。因此,在开发过程中,我们不得不额外处理这些情况。尽管如此,这些限制对我们的开发影响并不是绝对巨大的。MUD框架提供的store功能以及前端的索引器等开箱即用的功能,仍然为我们的开发速度和成本带来了积极的影响。
No activity yet