Arweave 技术专栏

2023年12月04日更新 19 人订阅
专栏简介 链上安全赛道扫描:Arweave 的数据永存性意义 为什么 Bundlr 解决了以太坊都无法解决的“三难问题“——来自 Bundlr CEO 的回答 Arweave 生态初体验之:如何免费使用 Arweave Arweave 2.6 挖矿指南 (Arweave 2.6) AR 生态中最重要的基础设施 - AR 网关介绍 Arweave 账户 精读 Arweave 黄皮书:永存技术架构 查询 Arweave Arweave 与存储共识范式的发展简史 SCP 概念及框架介绍 区块链存储 ARWEAVE:图灵机的纸带,可信计算新范式 模块化区块链的启示:从 Rollup 到 SCP Arweave 不仅仅是永久存储,更是共识数据的载体 杭州区块链论坛:存储应用范式 everPay 协议白皮书 SCP 应用打造:新一代的无链 DEX SCP 应用打造:去中心化的新闻媒体 SCP 应用打造:面向领域的 PoS 设计 Token DAO 开启链游技术架构新序章 — 基于Arweave打造纯链上游戏 arweave 夏季 hackathon 代码入门 Bundlr, Arseeding, Arg8 对比 什么是 Permaweb ? 用 Arweave + React 创建 Permaweb 应用 ArNotify:Permaweb 的通用通知器 Arweave Bundles 捆绑 使用 Bundle 交易在 everPay 上构建 DEX 可验证性的意义:Bundle SmartWeave 的去信任化共识 Arweave 是什么? Arseeding 1.0 正式发布:每个开发者的 Arweave ANS-104(Bundle)轻节点! Arweave 生态初体验之 everPay 下一代互联网 Permaweb 雏型,SCP 理论下的去中心化微服务架构 Kwil 扩展- 重新定义去中心化数据库的未来 ArConnect 1.0 正式上线,Arweave 生态入口升级! Arweave 的可组合性实验:探索更好的 NFT 市场 关于 everID 的一些思考 Blip: 探索 Arweave 的力量,构建开放式的 YouTube 平台 SCP Ventures:Arweave 2.6 之后的 Arweave 生态系统状况 基于 SCP 范式构建,DEX 可以实现「AMM 自由」 MEM 发布 Carbon Testnet

Arweave 账户

  • PermaDAO
  • 发布于 2023-08-11 14:33
  • 阅读 2010

Arweave 帐户是 Arweave 上一个可组合和可定制的配置文件协议(DID)。它依赖于本地网关的操作来写入和检索用户数据。

3.png

Web3 正在加速发展,Arweave 作为基础设施将被更多的开发者采用,创造一个全新的、更加丰富多彩的生态系统。 PermaDAO 正是为此而建立起来的共建者社区。所以参与的人都能在这里找到自己的角色来贡献 Arweave 生态,任何关于 Arweave 的提案与任务都可以发布于此,并得到整个社区的支持与回馈。 加入 PermaDAO,建设 Web3!

翻译自愿者:Scarlett LI @ Contributer of PermaDAO 审校自愿者:Xiaosong HU @ Contributer of PermaDAO


Arweave 账户

此 npm 包与 permadapp 帐户(详情请点击 Account)配对。

Arweave 帐户是 Arweave 上一个可组合和可定制的配置文件协议(DID)。它依赖于本地网关的操作来写入和检索用户数据。

谁使用它

以下是生态系统中不同应用程序显示的相同配置文件的一些示例: 您知道使用 Arweave 帐户的应用程序吗?可以通过 PR 将其添加到列表中❤️

文档

如果您是第一次尝试arweave-account,我们建议您尝试交互式文档(详情请点击interactive documentation)。

如果您想更深入地了解 arweave 帐户,那么您来对地方了

安装和导入

安装

npm install arweave-account

用法

import Account from 'arweave-account'

const account = new Account();

如果您使用的是 Typescript,请参阅 Typescript 导入部分。

基本用法

通过钱包地址获取用户资料

await account.get(walletAddr);

按用户名搜索用户资料

await account.search(handle);

通过钱包地址和用户名查找用户资料

await account.find(handle#uniqID);

示例:显示用户的头像、用户名和简介

import Account from 'arweave-account'

const account = new Account()

(async () => {
  const user = await account.get(await arweaveWallet.getActiveAddress())

  setHandle(user.handle);
  setAvatar(user.profile.avatarURL);
  setbio(user.profile.bio);
})()

创建/更新流程

使用上述 3 种方法,您可以显示任何 arweave 帐户,甚至不需要您的用户拥有 Arweave 的钱包。您的用户可以使用永久应用程序(详情请点击 permanent application)来创建和更新他们的 arweave 帐户资料。此外,我们还提供了一个重定向链接(详情请点击redirection link),可以将您的用户带到最新部署的 permadapp 版本。

什么是永久申请?(详情请点击 What is a permanent application?

请随意将您自己的重定向链接与您自己的品牌联系起来,或创建一个问题来增强入职流程,以便每个人都能从中受益。

不过,如果您想在您的应用程序arweave-account中实施自己的加入流程,请参阅以下高级用法部分。

高级用法

连接用户钱包

await account.connect(jwk?);

如果没有传递参数,帐户将使用注入的 arweaveWallet对象。在这种情况下,请确保您在调用此方法之前已使用正确的权限处理了钱包连接流,以避免任何意外行为。

创建/更新 arweave 帐户资料

await account.updateProfile(profileObj);

确保之前调用了connect()

示例:更新用户的用户名和简介

如果用户没有帐户,它将创建帐户。

import Account, {ArAccount} from 'arweave-account'

const account = new Account()

(async () => {
  const user: ArAccount = await account.get(await arweaveWallet.getActiveAddress())

  displayProfile(user.profile);

  await account.connect();
  user.profile.handleName = "DMac"
  user.profile.bio = "Accelerating the worlds transition to decentralized messaging"
  await account.updateProfile(user.profile)
})()

注意

高级用法仅与使用 dispatch() 注入arweaveWallet对象的钱包兼容。

如果您希望兼容更多钱包,请随时在此处展开讨论(问题)或在 discord 上私信我:cromatikap#6039

参考

Typescript导入

import { ArAccount, ArProfile } from 'arweave-account';

Ar 账户对象

当获取帐户信息时,库通过网关请求相关事务,对存储的信息进行解码,并返回按以下方式格式化的帐户对象:

Ar资料对象

avatarbanner 属性

avatar和 banner等图像属性可以引用来自不同链的 NFT。支持以下协议:

  • http://
  • https://
  • ar://

如果您希望添加其他协议,我们很乐意这样做。请随时与我们联系!

❣️ 此外,Metaweave 团队为合并的 Pull Requests 提供资助。

对于每个图像属性,都会根据提供的原始 URI 生成一个https URL。您可以使用后缀 URL 访问它。

例如:

数据协议

Account 是 Arweave 上的一个简单的原生数据协议。它由一个包含最新数据状态的简单事务组成。钱包密钥附加到其自己的最新写入,标签为 Protocol-Name: 'Account-<version>'

例如:

使用 ArQL(详情请点击ArQL) 请求最新更新的帐户资料

{
  transactions(
    first: 1
    tags: [{name:"Protocol-Name",values:"Account-0.2"}]
  ) {
    edges {
      node {
        id
        owner {
          key
          address
        }
        tags {
          name
          value
        }
        block {
          timestamp
        }
      }
    }
  }
}

数据架构

在 arweave 账户协议中,一组代表用户配置文件的数据被编码存储在交易中,并解码为 ArAccount类型的对象。

以下是钱包 aIUmY9Iy4qoW3HOikTy6aJww-mM4Y-CUJ7mXoPdzdog的编码和解码账户数据集示例:

编码的 arweave 账户数据(写在链上)

{
  "handle":"cromatikap",
  "avatar": "ar://xqjVvn9b8hmtDJhfVw80OZzAsn-ErpWbaFCPZWG5vKI",
  "banner": "ar://a0ieiziq2JkYhWamlrUCHxrGYnHWUAMcONxRmfkWt-k",
  "name":"Axel",
  "bio":"Founder of Metaweave.xyz\nI love dogs",
  "links": {
    "twitter":"cromatikap",
    "github":"cromatikap",
    "instagram":"cromatikap",
    "discord":"cromatikap#6039",
    "linkedin": "",
    "facebook": "",
    "youtube": "",
    "twitch": ""
  },
  "wallets": {
    "eth": "0xeEEe8f7922E99ce6CEd5Cb2DaEdA5FE80Df7C95e"
  }
}

解码后的 arweave 帐户数据

以下是使用库获得的数据集

{
  "txid": "NPJJoq-9EwUeAce_bSbSyqICaGs4_7Hg6VxCyoCY8UQ",
  "addr": "aIUmY9Iy4qoW3HOikTy6aJww-mM4Y-CUJ7mXoPdzdog",
  "handle": "cromatikap#aIUdog",
  "profile": {
    "avatar": "ar://xqjVvn9b8hmtDJhfVw80OZzAsn-ErpWbaFCPZWG5vKI",
    "avatarURL": "https://arweave.net/xqjVvn9b8hmtDJhfVw80OZzAsn-ErpWbaFCPZWG5vKI",
    "banner": "ar://a0ieiziq2JkYhWamlrUCHxrGYnHWUAMcONxRmfkWt-k",
    "bannerURL": "https://arweave.net/a0ieiziq2JkYhWamlrUCHxrGYnHWUAMcONxRmfkWt-k",
    "handleName": "cromatikap",
    "name": "Axel",
    "bio": "Founder of Metaweave.xyz\nI love dogs",
    "links": {
      "twitter": "cromatikap",
      "github": "cromatikap",
      "instagram": "cromatikap",
      "discord": "cromatikap#6039",
      "linkedin": "",
      "facebook": "",
      "youtube": "",
      "twitch": ""
    },
    "wallets": {
      "eth": "0xeEEe8f7922E99ce6CEd5Cb2DaEdA5FE80Df7C95e",
    }
  }
}

为了方便起见,添加了相关的txid和钱包addr。此外,您还可以访问从用户选择的用户名及其钱包地址派生的完整唯一handle

从 1.2.5 迁移到 1.3.x

1、唯一用户名(名称#xxxxxx)位于帐户级别

account.profile.handle  -> account.handle

从用户选择的用户名及其钱包地址派生的唯一用户名现在可以在account级别访问。

account.profile对象中,有一个新的属性handleName可用,它仅构成用户名的名称部分。

2、URL 资源自动生成

您不再需要从 avatar属性制作 URL。该库现在提供可在任何标准标签中使用的 URL。

关于 PermaDAOWebsite | Twitter | Telegram | DiscordMediumYoutube

0.png

点赞 0
收藏 0
分享

0 条评论

请先 登录 后评论