聚焦资讯
服务于区块链创业者

怎样永久性的存储数据到arweave.net区块链上

chatGPT账号

arweave区块链网络类似于IPFS网络,主要用于文件数据的永久性存储。Arweave 可让您通过永久存储快速、简单地进行构建。您可以存储从文件到完全去中心化的 Web 应用程序的任何内容。permaweb 生态系统是一个用于在 Arweave 上构建去中心化 Web 应用程序的完整堆栈。它提供从 Web 应用程序 UI 托管到数据库查询和域名服务的一切 – 所有这些都完全去中心化。这使您可以构建具有区块链属性的 Web 应用程序:永久、可证明中立和透明。

Arweave其实是一个存储层,就像一个数据库而不是一个应用程序有很多方法可以将数据上传到permaweb,最好的方法取决于你的具体需求。例如:

1、可以像Dropbox一样私下存储文档和照片

2、将网页永久保存在当前状态

3、托管应用程序的前端

4、以一种易于查询的方式在permaweb上存储应用程序数据

5、上传NFT并获得奖励

6、批量上传文件

Arweave有针对所有这些需求的Dapps(去中心化应用程序)。

目前使用arweave最为常见的应用是在arweave上存储solana的元数据信息,包括SPL代币和NFT的名称,简称,logo,描述等信息。solana在arweave上创建账号存储代币的元数据信息,同时Metaplex Metadata 格式的元数据中包含了指向logo的uri,为了避免跨链的数据访问造成的信息同步延迟,logo最好保存到arweave链上而非ipfs网络上

类似如下格式的metadata数据存储

"root":{13 items
"key":int4
"updateAuthority":string"5PuGxxxDtaJA4AYnpYHNCmwxgVsedx1AxV1bH"
"mint":string"21rweMLGTvtbdH3xa5pyxxxX6ZFRcHirCp9inRBQA"
"data":{5 items
"name":string"Name"
"symbol":string"Symbol"
"uri":string"https://arweave.net/4-FAQk56iRb6HkjL0eEFDB3ShyefLXn2U_4mkbxdIMxo"
"sellerFeeBasisPoints":int0
"creators":[1 item
0:{3 items
"address":string"5PuG9EmzDtE458aJS4AYnpYHxYBedx1AxVZsWS57befa81N1bxH"
"verified":int1
"share":int100
}
]
}
"primarySaleHappened":int0
"isMutable":int1
"editionNonce":int255
"tokenStandard":int2
"name":string"IQ50"
"symbol":string"IQ50"
"description":string"IQ50"
"image":string"https://arweave.net/6KljMJ7Ksferfei658ve4u99e4BERF8B4nrVe48nik5o1llKbA"
"extensions":{2 items
"website":string"https://www.testMetadata.test/"
"twitter":string"https://twitter.com/testMetadata"
}
}

在arweave区块链上创建对于的账号,通过nodejs版本的交互式programa将json格式的metadata存储到arweave网络上,存储存储完成后会产生https://arweave.net/6KljMJ7Ksferfei658ve4u99e4B583yhERF8B4nrVe48ne4ik5xlKbA格式的对外访问链接,可以通过该链接直接获取链端数据,从而实现solana链上元数据的初始化过程。

通过nodejs交互程序提交代币元数据到metadata program程序,以下为nodejs版本提交metadata元数据程序代码:


import * as mpl from "@metaplex-foundation/mpl-token-metadata";
import * as web3 from "@solana/web3.js";
import * as anchor from '@project-serum/anchor';

export function loadWalletKey(keypairFile:string): web3.Keypair {
    const fs = require("fs");
    const loaded = web3.Keypair.fromSecretKey(
      new Uint8Array(JSON.parse(fs.readFileSync(keypairFile).toString())),
    );
    return loaded;
  }

const INITIALIZE = false;

async function main(){
    console.log("let's name some tokens!");
    const myKeypair = loadWalletKey("Your Keypair");
    const mint = new web3.PublicKey("Your Token Address");
    const seed1 = Buffer.from(anchor.utils.bytes.utf8.encode("metadata"));
    const seed2 = Buffer.from(mpl.PROGRAM_ID.toBytes());
    const seed3 = Buffer.from(mint.toBytes());
    const [metadataPDA, _bump] = web3.PublicKey.findProgramAddressSync([seed1, seed2, seed3], mpl.PROGRAM_ID);
    const accounts = {
        metadata: metadataPDA,
        mint,
        mintAuthority: myKeypair.publicKey,
        payer: myKeypair.publicKey,
        updateAuthority: myKeypair.publicKey,
    }
    const dataV2 = {
        name: " Your Token Name",
        symbol: " Your Token Symbol",
        uri: "Image Url upload",
        // we don't need that
        sellerFeeBasisPoints: 0,
        creators: null,
        collection: null,
        uses: null
    }
    let ix;
    if (INITIALIZE) {
        const args =  {
            createMetadataAccountArgsV2: {
                data: dataV2,
                isMutable: true
            }
        };
        ix = mpl.createCreateMetadataAccountV2Instruction(accounts, args);
    } else {
        const args =  {
            updateMetadataAccountArgsV2: {
                data: dataV2,
                isMutable: true,
                updateAuthority: myKeypair.publicKey,
                primarySaleHappened: true
            }
        };
        ix = mpl.createUpdateMetadataAccountV2Instruction(accounts, args)
    }
    const tx = new web3.Transaction();
    tx.add(ix);
    const connection = new web3.Connection("https://api.mainnet-beta.solana.com");
    const txid = await web3.sendAndConfirmTransaction(connection, tx, [myKeypair]);
    console.log(txid);

}

main();

元数据提交完成后的SPL代币或者NFT可以直接在solscan上查询相关信息

permaweb是一个全球社区所有的网络。任何人都可以为permaweb做出贡献以维护它并因此获得报酬。从表面上看,永久网似乎就像普通网一样。然而,permaweb持有的所有内容都是永久性的、分散的且易于检索。这包括图像、文本、应用程序以及网络上的任何其他内容。

permaweb是在Arweave数据存储层之上相互链接的文档和应用程序的集合。一旦用户向永久网络添加内容或数据,它就会被永久存储并且始终可以访问。这鼓励了整个网络的完整性和可验证性。

至此,完成怎样永久性的存储数据到arweave.net区块链上的所有操作流程。

pdf+视频Solana链SOL发币教程及多模式组合合约源代码下载:

Solana链SOL发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:

多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:

pdf+视频Solana链SOL发币教程及多模式组合合约源代码下载地址:

此内容仅供注册用户可见,请登录!

添加VX或者telegram获取全程线上免费指导

免责声明

发文时比特币价格:$64249

免责声明:

本文不代表行至网立场,且不构成投资建议,请谨慎对待。用户由此造成的损失由用户自行承担,与行至网没有任何关系;

行至网不对网站所发布内容的准确性,真实性等任何方面做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,行至网对项目的真实性,准确性等任何方面均不做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,行至网不对其构成任何投资建议,用户由此造成的损失由用户自行承担,与行至网没有任何关系;

行至区块链研究院声明:行至区块链研究院内容由行至网发布,部分来源于互联网和行业分析师投稿收录,内容为行至区块链研究院加盟专职分析师独立观点,不代表行至网立场。

chatGPT账号
赞(1) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权,未经允许不得转载。
文章名称:《怎样永久性的存储数据到arweave.net区块链上》
文章链接:https://www.xingzhi.io/webthree/30228.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

服务于区块链创业者

业务范围商务合作

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的区块链世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录后才能复制或下载网站内容