19 |
20 |
21 |
22 |
23 |
100 |
--------------------------------------------------------------------------------
/docs/src/.vuepress/composables/useContributors.js:
--------------------------------------------------------------------------------
1 | import { ref } from 'vue';
2 |
3 | export const useContributors = () => {
4 | const contributors = ref([]);
5 |
6 | fetch(
7 | 'https://api.github.com/repos/twilson63/permaweb-cookbook/contributors?q=contributions&order=desc'
8 | )
9 | .then((res) => {
10 | if (res.ok) return res.json();
11 | else return [];
12 | })
13 | .then((result) => {
14 | contributors.value = result;
15 | });
16 |
17 | return contributors;
18 | }
--------------------------------------------------------------------------------
/docs/src/.vuepress/composables/useI18N.js:
--------------------------------------------------------------------------------
1 | import { usePageFrontmatter } from '@vuepress/client';
2 |
3 | export const languages = __LANGUAGES__.reduce((langs, currentLang) => {
4 | langs[currentLang.display] = `${currentLang.code}/`;
5 | return langs;
6 | }, {
7 | "English": "/"
8 | });
9 |
10 | const i18n_strs = __LANGUAGES__.reduce((langs, currentLang) => {
11 | langs[currentLang.code] = currentLang.strings;
12 | return langs;
13 | }, {});
14 |
15 | export const get_i18n_str = (langCode="en", key, fallbackStr) => {
16 | const engStr = __ENSTRS__[key] || fallbackStr;
17 | if (langCode === "en") return engStr;
18 | return i18n_strs[langCode][key] || engStr;
19 | }
20 |
21 | export const useI18NStr = () => {
22 | const frontmatter = usePageFrontmatter();
23 | return (key, fallbackStr) => get_i18n_str(frontmatter.value.locale, key, fallbackStr);
24 | };
25 |
26 | export const getCurrentLanguage = (path) => {
27 | const currentPath = path;
28 | const pathSegments = currentPath
29 | .split("/")
30 | .filter((segment) => segment !== "");
31 |
32 | if (pathSegments.length >= 2) {
33 | const language = Object.keys(languages).find(
34 | (lang) => `${pathSegments[0]}/` === languages[lang]
35 | );
36 | if (language) {
37 | return language;
38 | }
39 | } else if (pathSegments.length < 2 && pathSegments[0] !== "") {
40 | const language = Object.keys(languages).find(
41 | (lang) => `${pathSegments[0]}/` === languages[lang]
42 | );
43 | if (language) {
44 | return language;
45 | }
46 | }
47 |
48 | return "English";
49 | };
50 |
51 | export const getLanguagePath = (path, selectedLanguage, currentLanguage="English") => {
52 | if (selectedLanguage === currentLanguage) return path;
53 |
54 | const currentPath = path;
55 | const selectedLanguagePath = languages[selectedLanguage];
56 |
57 | let newPath;
58 |
59 | if (currentLanguage === "English") {
60 | newPath = currentPath.replace(/^\/(.*)/, `/${selectedLanguagePath}$1`);
61 | } else if (selectedLanguage === "English") {
62 | newPath = currentPath.replace(
63 | new RegExp(`^\/(${Object.values(languages).join("|")})`),
64 | `${selectedLanguagePath}`
65 | );
66 | } else {
67 | newPath = currentPath.replace(
68 | new RegExp(`^\/(${Object.values(languages).join("|")})`),
69 | `/${selectedLanguagePath}`
70 | );
71 | }
72 |
73 | return newPath;
74 | };
--------------------------------------------------------------------------------
/docs/src/.vuepress/public/Permaweb_Cookbook.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/.vuepress/public/Permaweb_Cookbook.ico
--------------------------------------------------------------------------------
/docs/src/.vuepress/public/cookbook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/.vuepress/public/cookbook.png
--------------------------------------------------------------------------------
/docs/src/.vuepress/public/encryption-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/.vuepress/public/encryption-diagram.png
--------------------------------------------------------------------------------
/docs/src/.vuepress/public/entity-relationship-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/.vuepress/public/entity-relationship-diagram.png
--------------------------------------------------------------------------------
/docs/src/.vuepress/public/private-drive-schema.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/.vuepress/public/private-drive-schema.png
--------------------------------------------------------------------------------
/docs/src/.vuepress/public/public-drive-schema.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/.vuepress/public/public-drive-schema.png
--------------------------------------------------------------------------------
/docs/src/.vuepress/styles/bootstrap.scss:
--------------------------------------------------------------------------------
1 | @import 'bootstrap/scss/functions';
2 |
3 | $grid-breakpoints: (
4 | xs: 0,
5 | sm: 576px,
6 | md: 768px,
7 | lg: 992px,
8 | xl: 1100px,
9 | xxl: 1400px
10 | );
11 | $container-max-widths: (
12 | sm: 540px,
13 | md: 720px,
14 | lg: 960px,
15 | xl: 1360px,
16 | xxl: 1440px
17 | );
18 | $grid-gutter-width: 40px;
19 |
20 | @import 'bootstrap/scss/variables';
21 | @import 'bootstrap/scss/maps';
22 | @import 'bootstrap/scss/mixins';
23 | @import 'bootstrap/scss/root';
24 |
--------------------------------------------------------------------------------
/docs/src/community/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Permaweb Cookbook - Community
3 | ---
4 |
5 | # Community
6 |
7 | If you've created something on the Permaweb, and would like to add documentation to this cookbook, consider [contributing](../getting-started/contributing.md)!
8 |
9 | ## Community Contributions
10 | - [Arweave Name System (ArNS)](../concepts/arns.md)
11 | - [Atomic Assets](../guides/smartweave/atomic-assets/index.md)
12 | - [using ArDrive CLI](../guides/smartweave/atomic-assets/ardrive-cli.md)
--------------------------------------------------------------------------------
/docs/src/concepts/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Permaweb Cookbook - Core Concepts
3 | ---
4 |
5 | # Core Concepts
6 |
7 | Foundations of Arweave and the Permaweb.
8 |
9 | - [Posting Transactions](post-transactions.md)
10 | - [Metadata (Tags)](tags.md)
11 | - [Querying](queryTransactions.md)
12 | - [Fetching Data](/guides/http-api.md)
13 | - [Transaction Types](bundles.md)
14 | - [Bundles](bundles.md)
15 | - [Path Manifests](manifests.md)
16 | - [Wallets and Keys](keyfiles-and-wallets.md)
17 | - [Permaweb](permaweb.md)
18 | - [Permaweb Applications](permawebApplications.md)
19 | - [Gateway Services](gateways.md)
20 | - [Bundling Services](bundlers.md)
21 | - [Arweave File System (ArFS)](arfs/arfs.md)
22 | - [Data model](arfs/data-model.md)
23 | - [Entity Types](arfs/entity-types.md)
24 | - [Content Types](arfs/content-types.md)
25 | - [Privacy](arfs/privacy.md)
26 | - [Schema Diagrams](arfs/schema-diagrams.md)
27 |
28 | > Do you think a permaweb core concept is missing? Create a issue at [Github](https://github.com/twilson63/permaweb-cookbook/issues) or consider [contributing](../getting-started/contributing.md)
29 |
--------------------------------------------------------------------------------
/docs/src/concepts/arfs/content-types.md:
--------------------------------------------------------------------------------
1 | ---
2 | prev: "entity-types.md"
3 | next: "privacy.md"
4 | ---
5 |
6 | # Content Types
7 |
8 | All transaction types in ArFS leverage a specific metadata tag for the Content-Type (also known as mime-type) of the data that is included in the transaction. ArFS clients must determine what the mime-type of the data is, in order for Arweave gateways and browswers to render this content appropriately.
9 |
10 | All public drive, folder, and file (metadata only) entity transactions all use a JSON standard, therefore they must have the following content type tag:
11 |
12 | ```json
13 | Content-Type: ''
14 | ```
15 |
16 | However, a file's data transaction must have its mime-type determined. This is stored in the file's corresponding metadata transaction JSON's `dataContentType` as well as the content type tag in the data transaction itself.
17 |
18 | ```json
19 | Content-Type: ""
20 | ```
21 |
22 | All private drive, folder, and file entity transactions must have the following content type, since they are encrypted:
23 |
24 | ```json
25 | Content-Type: ''
26 | ```
27 |
28 | [ArDrive-Core](https://docs.ardrive.io/docs/core-sdk.html) includes methods to determine a file's content type.
29 |
30 |
31 | ## Other Tags
32 |
33 | ArFS enabled clients should include the following tags on their transactions to identify their application
34 |
35 | ```json
36 | App-Name: "
11 |
Public Drive Schema
12 |
13 | ### Private Drive
14 |
15 |
Private Drive Schema
16 |
17 | Arweave GQL Tag Byte Limit is restricted to `2048`. There is no determined limit on Data JSON custom metadata, though more data results in a higher upload cost.
--------------------------------------------------------------------------------
/docs/src/concepts/atomic-tokens.md:
--------------------------------------------------------------------------------
1 | # Atomic Token Concept and Principles
2 |
3 | 
4 |
5 | An Atomic Token is a single permanent identifier that references data and a SmartWeave Contract on the Permaweb.
6 |
7 | ## Specifications
8 |
9 | Data MUST be stored on the arweave network and referencable by a Transaction Identifier
10 |
11 | Contract MUST implement a `balances` object that represents the ownership of the Atomic Token
12 |
13 | Contract MUST implement a `transfer` function that takes the following arguments:
14 | - target {WalletAddress or Contract}
15 | - qty {Number}
16 |
17 | > The transfer function should transfer ownership from the caller to the target
18 |
19 | ## Options
20 |
21 | _These are implementation options that can make the Atomic Token discoverable and tradeable on the Permaweb_
22 |
23 | [Verto Flex](https://github.com/useverto/flex) - The Flex Library gives your atomic token to be sold or purchased without trusting an exchange.
24 |
25 | [Discoverability Tags - ANS 110](https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-110.md) - These additional tags can help Permaweb applications and services discover your token.
26 |
27 | [Check out the Guide](../guides/atomic-tokens/intro.md)
--------------------------------------------------------------------------------
/docs/src/concepts/bundlers.md:
--------------------------------------------------------------------------------
1 | # Bundling Services
2 |
3 | ---
4 |
5 | With bundling services users can post their data transactions to a bundling service to have it "bundled" together with other users transactions and posted as a single Arweave transaction in an upcoming Arweave block.
6 |
7 | ---
8 |
9 | ### What is a bundle?
10 |
11 | ---
12 |
13 | A description of transaction bundles and their benefits can be found [here](/concepts/bundles.md).
14 |
15 | ### What is a Bundler node?
16 |
17 | ---
18 |
19 | A bundler is a node which is responsible for accepting transactions or data items from users, bundling them, and posting them to the Arweave network (with a guarantee they will be uploaded with a specific transaction ID).
20 |
21 | Services:
22 |
23 | - [Turbo](https://github.com/ardriveapp/turbo-upload-service/)
24 |
25 | Which make sure the data is persisted until it is uploaded to Arweave.
26 |
27 | ### Supporting multiple currencies
28 |
29 | ---
30 |
31 | A key feature of bundling services is that because they pay for the base Arweave transaction to be posted (using AR tokens) they can choose to enable payments of storage fees on a variety of different tokens. This is the main entry point for other chains to enable Arweave's permanent storage for their users.
32 |
--------------------------------------------------------------------------------
/docs/src/concepts/bundles.md:
--------------------------------------------------------------------------------
1 | # Transaction Bundles
2 |
3 | ### What is a Bundle?
4 |
5 | ---
6 |
7 | A transaction bundle is a special type of Arweave transaction. It enables multiple other transactions and/or data items to be bundled inside it. Because transaction bundles contain many nested transactions they are key to Arweave's ability to scale to thousands of transactions per second.
8 |
9 | Users submit transactions to a bundling service, such as [turbo](https://ardrive.io/turbo-bundler/), which combines them into a 'bundle' with other transactions and posts them to the network.
10 |
11 | ### How Do Bundles Help Arweave?
12 |
13 | ---
14 |
15 | #### Availability
16 |
17 | Bundling services guarantee that bundled transactions are reliably posted to Arweave without dropping.
18 |
19 | Transaction IDs of the bundled transactions are immediately made available, meaning the data can instantly be accessed as if it was already on the Arweave network.
20 |
21 | #### Reliability
22 |
23 | Transactions posted to Arweave can occasionally fail to confirm (resulting in a dropped transaction) due to a number of reasons, such as high network activity. In these instances transactions can become **orphaned**, i.e. stuck in the mempool and eventually removed.
24 |
25 | Bundlers solve this problem by continually attempting to post bundled data to Arweave, assuring that it does not fail or get stuck in the mempool.
26 |
27 | #### Scalability
28 |
29 | Bundles can store up to 2256 transactions, each of which are settled as a single transaction on Arweave. This makes Arweave blockspace scale to support almost any use case.
30 |
31 | ### What are Nested Bundles?
32 |
33 | ---
34 |
35 | Bundles can include data items for uploading to Arweave and those data item can themselves be a bundle.
36 |
37 | This means it is possible to upload a bundle of bundles, or in other words **nested bundles**.
38 |
39 | Nested bundles have no theoretical limit on nesting depth, meaning that transaction throughput can be increased drastically.
40 |
41 | Nested bundles might be useful for when you have different groups of bundled data that you want to guarantee reach Arweave altogether, and at the same time.
42 |
43 | Sources and Further Reading:
44 |
45 | [Ardrive Turbo](https://ardrive.io/turbo-bundler/)
46 |
47 | [ANS-104 Standard](https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-104.md)
48 |
--------------------------------------------------------------------------------
/docs/src/concepts/gateways.md:
--------------------------------------------------------------------------------
1 | # Gateways
2 |
3 | ---
4 |
5 | Data uploaded to the Arweave network (or the [permaweb](https://cookbook.arweave.dev/concepts/permaweb.html)) isn't always immediately easy to work with.
6 |
7 | ### What is a Gateway?
8 |
9 | Gateways are sometimes referred to as the "front door to the permaweb". They act as an interface between Arweave and end-users, making it easy to access data or use permaweb applications from your web browser.
10 |
11 | For example, accessing a HTML file stored on Arweave will be displayed as a web page in your browser. The same goes for viewing images, downloading files, viewing JSON data, or any other file stored on Arweave. This makes interacting with the permaweb very similar to using the traditional web.
12 |
13 | ### Other Roles of Gateways
14 |
15 | Other than serving data for users to access, gateways offer other services such as:
16 |
17 | - Caching frequently accessed data and transactions
18 | - Indexing and querying transactions (through Arweave tags and a GraphQl interface)
19 | - Seeding transactions throughout the Arweave network
20 | - Content moderation (content policies to choose which data is or isn't served)
21 |
22 | ### Gateways and the Arweave Protocol
23 |
24 | Although gateways play a large role in allowing content to be accessed on Arweave, they are **not** part of the core protocol.
25 |
26 | This means hosting and running gateways is separate to running a node securing the Arweave network (although are frequently done together).
27 |
28 | As gateways are not part of the core protocol, there is no built-in incentive structure like the rewards or incentives for mining. This allows gateway operators or external services to choose how they want to structure their incentive system, leading to a more decentralized and democratic model. Individual applications could even operate their own gateway to allow for better caching and performance of their permaweb applications.
29 |
30 | Some popular gateways include [arweave.net](https://arweave.net/) ran by the Arweave team, and others like [arweave.world](https://cookbook.arweave.world/) [arweave.asia](https://cookbook.arweave.asia) [arweave.live](https://arweave.live/), and [g8way.io](https://g8way.io). However, operating gateways is being made easier and more accessible through teams such as [AR.IO](https://ar.io/).
31 |
32 | ### Sources and Further Reading
33 |
34 | - [ArWiki](https://arwiki.wiki/#/en/gateways)
35 | - [AR.IO](https://ar.io/)
--------------------------------------------------------------------------------
/docs/src/concepts/permaweb.md:
--------------------------------------------------------------------------------
1 | # Welcome to the Permaweb
2 |
3 | The permaweb is like the web, but permanent. Developers build on top of permaweb services to create apps and sites that will exist forever on Arweave.
4 |
5 | 
6 |
7 | Benefits of the permaweb.
8 |
9 | 1. Sites and apps are permanent, you never have to worry about them going away (even if the team supporting them moves on)
10 | 1. App developers have to make sure every new version of the app actually adds value, otherwise, why would you switch off the old one.
11 | 1. Because all Permaweb apps share a common storage layer, Arweave, they can all compose with one anther's data.
12 | 1. Your data is owned by your wallet and can follow you from app to app.
13 |
14 | ## Compare Traditional Web vs Permaweb
15 |
16 | 
17 |
18 | For more information about the permaweb check out the [medium post](https://arweave.medium.com/welcome-to-the-permaweb-ce0e6c73ddfb).
19 |
20 |
--------------------------------------------------------------------------------
/docs/src/config/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar: auto
3 | ---
4 |
5 | # Config
6 |
7 | ## foo
8 |
9 | - Type: `string`
10 | - Default: `/`
11 |
12 | ## bar
13 |
14 | - Type: `string`
15 | - Default: `/`
16 |
--------------------------------------------------------------------------------
/docs/src/es/concepts/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | # Conceptos básicos
6 |
7 | Fundamentos de Arweave y el Permaweb.
8 |
9 | - [Publicar transacciones](post-transactions.md)
10 | - [Metadatos (etiquetas)](tags.md)
11 | - [Consultas](queryTransactions.md)
12 | - [Descargar Datos](/guides/http-api.md)
13 | - [Tipos de transacciones](bundles.md)
14 | - [Paquetes](bundles.md)
15 | - [Manifiestos de rutas](manifests.md)
16 | - [Monederos y Claves](keyfiles-and-wallets.md)
17 | - [Permaweb](permaweb.md)
18 | - [Aplicaciones de Permaweb](permawebApplications.md)
19 | - [Servicios de pasarela](gateways.md)
20 | - [Servicios de empaquetado](bundlers.md)
21 | - [SmartWeave](smartweave.md)
22 | - [Sistema de Nombres Arweave (ArNS)](arns.md)
23 | - [Fichas atómicas](atomic-tokens.md)
24 | - [Fichas de Compartición de Beneficios (PSTs)](psts.md)
25 |
26 | > ¿Crees que falta algún concepto básico de Permaweb? Cree una issue en [GitHub](https://github.com/twilson63/permaweb-cookbook/issues) o considere [contribuir](../getting-started/contributing.md)
27 |
--------------------------------------------------------------------------------
/docs/src/es/concepts/atomic-tokens.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | - For more information and examples for creating Atomic Tokens.
5 |
6 | # Concepto y principios de Token Atómico
7 |
8 | 
9 |
10 | Un Token Atómico es un único identificador permanente que hace referencia a los datos y un Contrato SmartWeave en el Permaweb.
11 |
12 | ## Especificaciones
13 |
14 | Los datos DEBEN almacenarse en la red de arweave y referenciables mediante un Identificador de Transacción.
15 |
16 | El Contrato DEBE implementar un objeto "balances" que represente la propiedad del Token Atómico.
17 |
18 | El Contrato DEBE implementar una función "transfer" que tenga los siguientes argumentos:
19 | - objetivo {WalletAddress o Contracto}
20 | - qty {Número}
21 |
22 | > La función de transferencia debería transferir la propiedad del llamador al objetivo.
23 |
24 | ## Opciones
25 |
26 | _Estas son opciones de implementación que pueden hacer que el Token Atómico sea descubrible y comerciable en el Permaweb_
27 |
28 | [Verto Flex](https://github.com/useverto/flex) - La Biblioteca Flex permite que su token atómico sea vendido o comprado sin confiar en un intercambio.
29 |
30 | [Etiquetas de descubrimiento - ANS 110](https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-110.md) - Estas etiquetas adicionales pueden ayudar a las aplicaciones y servicios del Permaweb a descubrir su token.
31 |
32 | [Echa un vistazo a la Guía](../guides/atomic-tokens/intro.md) - Para obtener más información y ejemplos para crear Tokens Atómicos.
--------------------------------------------------------------------------------
/docs/src/es/concepts/bundlers.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | # Servicios de empaquetamiento
6 |
7 | ---
8 |
9 | Con los servicios de empaquetamiento, los usuarios pueden publicar sus transacciones de datos en un servicio centralizado para que se "empaqueten" con las transacciones de otros usuarios y se publiquen como una sola transacción Arweave en un bloque de Arweave próximo.
10 |
11 | ### ¿Qué es un paquete?
12 |
13 | ---
14 |
15 | Puede encontrar una descripción de los paquetes de transacción y sus beneficios [aquí](/concepts/bundles.md).
16 |
17 | ### ¿Qué es un nodo Empaquetador?
18 |
19 | ---
20 |
21 | Un empaquetador es un nodo que se encarga de aceptar transacciones o elementos de datos de los usuarios, empaquetarlos y publicarlos en la red Arweave (con la garantía de que se cargarán con un identificador de transacción específico).
22 |
23 | Que aseguran que los datos se mantengan hasta que se carguen en Arweave.
24 |
25 | ### Apoyando múltiples monedas
26 |
27 | ---
28 |
29 | Una característica clave de los servicios de empaquetamiento es que, debido a que pagan por la publicación de la transacción base de Arweave (usando tokens AR), pueden optar por habilitar pagos de tarifas de almacenamiento con una variedad de tokens diferentes. Esta es la principal vía de entrada para que otras cadenas habiliten el almacenamiento permanente de Arweave para sus usuarios.
30 |
--------------------------------------------------------------------------------
/docs/src/es/concepts/permaweb.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | # Bienvenido a la Permaweb
6 |
7 | La Permaweb es como la web, pero permanente. Los desarrolladores construyen sobre servicios de Permaweb para crear aplicaciones y sitios web que existirán para siempre en Arweave.
8 |
9 | 
10 |
11 | Beneficios de la Permaweb.
12 |
13 | 1. Los sitios web y las aplicaciones son permanentes, nunca tendrás que preocuparte por que desaparezcan (incluso si el equipo que los soporta se mueve).
14 | 1. Los desarrolladores de aplicaciones tienen que asegurarse de que cada nueva versión de la aplicación realmente aporte valor, de lo contrario, ¿por qué cambiaríamos la antigua?.
15 | 1. Debido a que todas las aplicaciones de Permaweb comparten una capa de almacenamiento común, Arweave, pueden todas componerse con los datos unas de otras.
16 | 1. Tus datos son propiedad de tu billetera y pueden seguirte de una aplicación a otra.
17 |
18 | ## Compara la Web Tradicional con la Permaweb
19 |
20 | 
21 |
22 | Para obtener más información sobre la Permaweb, consulta el [artículo en Medium](https://arweave.medium.com/welcome-to-the-permaweb-ce0e6c73ddfb).
23 |
--------------------------------------------------------------------------------
/docs/src/es/getting-started/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | # Cocinar con el Permaweb
6 |
7 | La cocina Permaweb es un recurso para desarrolladores que ofrece los conceptos y referencias esenciales para construir aplicaciones en el Permaweb. Cada concepto y referencia se enfocará en aspectos específicos del ecosistema de desarrollo del Permaweb mientras proporciona detalles adicionales y ejemplos de uso.
8 |
9 | ## Desarrolladores
10 |
11 | Bienvenidos a la comunidad de desarrollo de Arweave, donde el pasado está grabado para siempre en el blockchain y el futuro está lleno de posibilidades sin límites. ¡Construyamos juntos la web descentralizada!
12 |
13 | [Leer más](welcome.md)
14 |
15 | ## Contribuir
16 |
17 | La Cocina esta diseñada de manera para que sea fácil para nuevos desarrolladores de Permaweb contribuir. ¡Incluso si no sabes cómo hacer algo, contribuir a la Cocina es una excelente forma de aprender!
18 |
19 | Ve todos los issues abiertos aquí. Las pautas de contribución aquí. si encuentras que falta un concepto, guía o referencia en la cocina, agrega un issue.
20 |
21 | [Leer más](contributing.md)
22 |
23 | ## Cómo leer la Cocina
24 |
25 | La cocina Permaweb está dividida en diferentes secciones, cada una con un objetivo diferente.
26 |
27 | | Sección | Descripción |
28 | | ----------------- | -------------------------------------------------------------------------------------------- |
29 | | Conceptos Básicos | Bloques de construcción del Permaweb que es bueno saber para el desarrollo |
30 | | Guías | Guías de bocado de distintas herramientas para el desarrollo |
31 | | Referencias | Referencias a fragmentos de código comúnmente necesarios |
32 | | Kits de inicio | Iniciadores de Framework Front-end para empezar a construir en el Permaweb sin perder tiempo |
33 |
34 | ## Comienzos Rápidos
35 |
36 | Estas son pequeñas guías para ayudar a desarrolladores con cualquier nivel de experiencia a enviar código al permaweb.
37 |
38 | - [Hola Mundo (Sin Código)](quick-starts/hw-no-code.md)
39 | - [Hola Mundo (Código)](quick-starts/hw-code.md)
40 | - [Desplegar una Página Web](quick-starts/webpage.md)
41 | - [Desplegar una Aplicación Web](quick-starts/web-app.md)
42 |
--------------------------------------------------------------------------------
/docs/src/es/getting-started/quick-starts/hw-cli.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | # Hola Mundo (CLI)
6 |
7 | Esta guía le guiará a través de la forma más simple de obtener datos en el permaweb usando una interfaz de línea de comandos (CLI).
8 |
9 | ## Requerimientos
10 |
11 | - [NodeJS](https://nodejs.org) LTS o superior
12 |
13 | ## Descripción
14 |
15 | Usando una ventana de terminal / consola, cree una nueva carpeta llamada `hw-permaweb-1`.
16 |
17 | ## Configuración
18 |
19 | ```sh
20 | cd hw-permaweb-1
21 | npm init -y
22 | npm install arweave ardrive-cli
23 | ```
24 |
25 | ## Generar una billetera
26 |
27 | ```sh
28 | npx -y @permaweb/wallet > ~/.demo-arweave-wallet.json
29 | ```
30 |
31 | ## Crea una página web
32 |
33 | ```sh
34 | echo "
Hola Permaweb
" > index.html
35 | ```
36 |
37 | ## Subir utilizando Irys
38 |
39 | ```sh
40 | # Create a Drive
41 | FOLDER_ID=$(npx ardrive create-drive -n public -w ~/.demo-arweave-wallet.json --turbo | jq -r '.created[] | select(.type == "folder") | .entityId')
42 | # Upload file
43 | TX_ID=$(npx ardrive upload-file -l index.html --content-type text/html -w ~/.demo-arweave-wallet.json --turbo -F ${FOLDER_ID} | jq -r '.created[] | select(.type == "file
44 | ") | .dataTxId')
45 | # open file from ar.io gateway
46 | open https://g8way.io/${TX_ID}
47 | ```
48 |
--------------------------------------------------------------------------------
/docs/src/es/getting-started/quick-starts/hw-no-code.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | # Hola Mundo (Sin Código)
6 |
7 | En este tutorial rápido vamos a subir una imagen al permaweb sin tener que escribir código.
8 |
9 | ## Requisitos
10 |
11 | - Computadora
12 | - Internet
13 | - Navegador web moderno
14 |
15 | ## Crea una billetera con algunos AR
16 |
17 | [https://faucet.arweave.net/](https://faucet.arweave.net/)
18 |
19 | Visite el grifo de Arweave y genera una billetera con AR, esto requiere una cuenta de Twitter. Se te pedirá descargar tu archivo de claves como `file.json`.
20 |
21 | 
22 |
23 | ## Añadiendo el archivo de claves a la billetera Arweave.app
24 |
25 | https://arweave.app/add
26 |
27 | Haga clic en el botón Importar claves. Y cargue su archivo de claves en la billetera de la aplicación.
28 |
29 | 
30 |
31 | ## Enviar algunos datos a Arweave
32 |
33 | Cuando se haya importado el archivo de claves, se le dirigirá a la vista de la billetera, haga clic en el botón Enviar y seleccione un archivo para cargar. Luego haga clic en el botón `Enviar`.
34 |
35 | 
36 |
37 | ## ¡Felicidades!!
38 |
39 | Acabas de publicar algunos datos en Arweave sin escribir código.
40 |
41 | ## ¡Verlo en acción!
42 |
43 | - [Arcademy](https://arcademy.arweave.dev/#/AtomicPlayground/xMVuQ5BKy__EccnMu0Ji_0rPk3f6yCtIRdHwvjSweB4)
44 | - [Youtube](https://youtu.be/T6wJ3m5ABSU)
45 |
--------------------------------------------------------------------------------
/docs/src/es/getting-started/welcome.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | # Desarrollar en la Permaweb
6 |
7 | ## Bienvenido a la Permaweb
8 |
9 | Crear aplicaciones en la permaweb, que está construida sobre el protocolo Arweave, es similar a construir aplicaciones web tradicionales pero con algunas diferencias clave.
10 |
11 | Una de las principales diferencias es que los datos se almacenan en la permaweb de forma permanente, tal y como sugiere el nombre, en lugar de almacenarse en un servidor centralizado. Esto significa que una vez que los datos se cargan a la permaweb, no se pueden eliminar ni alterar. Esto puede ser beneficioso para aplicaciones que requieren almacenamiento de datos inalterables, como los sistemas de gestión de la cadena de suministro o de votación.
12 |
13 | Otra diferencia es que la permaweb es descentralizada, lo que significa que no hay un punto central de control o falla. Esto puede proporcionar mayor seguridad y fiabilidad para las aplicaciones.
14 |
15 | Además, la permaweb usa un token único, llamado AR, para pagar el almacenamiento de datos en la red. Esto puede agregar una nueva capa de complejidad al desarrollo de aplicaciones, ya que los desarrolladores deben considerar cómo integrar AR en sus aplicaciones y manejar los pagos.
16 |
17 | En general, la experiencia de crear aplicaciones en la permaweb puede ser desafiante, pero también puede ser gratificante ya que ofrece beneficios únicos en comparación con el desarrollo web tradicional.
18 |
19 | ## Hola Mundos
20 |
21 | - [Hola Mundo (Sin código)](./quick-starts/hw-no-code.md)
22 | - [Hola Mundo (CLI)](./quick-starts/hw-cli.md)
23 | - [Hola Mundo (Node.js)](./quick-starts/hw-node.md)
24 |
--------------------------------------------------------------------------------
/docs/src/es/guides/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | # Guías
6 |
7 | Guías rápidas para los componentes básicos de la Permaweb
8 |
9 | - [ArProfile (arprofile.md)](arprofile.md)
10 | - [Integración de DNS (dns-integration/server-side.md)](dns-integration/server-side.md)
11 | - [Lado del servidor](dns-integration/server-side.md)
12 | - [Spheron](dns-integration/spheron.md)
13 | - [Implementación de aplicaciones (deployment/irys-cli.md)](deployment/irys-cli.md)
14 | - [arkb](deployment/arkb.md)
15 | - [irys-cli](deployment/irys-cli.md)
16 | - [github-action](deployment/github-action.md)
17 | - [Implementación de PathManifests (deploying-manifests/deployingManifests.md)](deploying-manifests/deployingManifests.md)
18 | - [arweave.app](deploying-manifests/arweave-app.md)
19 | - [ardrive](deploying-manifests/ardrive.md)
20 | - [irys.xyz](deploying-manifests/irys.md)
21 | - [Implementación de PSTs (deploying-psts.md)](deploying-psts.md)
22 | - [GraphQL](querying-arweave/queryingArweave.md)
23 | - [ArDB](querying-arweave/ardb.md)
24 | - [ar-gql](querying-arweave/ar-gql.md)
25 | - [Servicio de búsqueda](querying-arweave/search-indexing-service.md)
26 | - SmartWeave
27 | - [Tokens atómicos](atomic-tokens/intro.md)
28 | - [Vouch](vouch.md)
29 | - Contratos Warp
30 | - [Introducción](smartweave/warp/intro.md)
31 | - [Implementación de contratos](smartweave/warp/deploying-contracts.md)
32 | - [Leer el estado del contrato](smartweave/warp/readstate.md)
33 | - [Escribir interacciones del contrato](smartweave/warp/write-interactions.md)
34 | - [Evolucionar el contrato](smartweave/warp/evolve.md)
35 | - [Pruebas](testing/arlocal.md)
36 |
37 | > ¿Crees que falta alguna guía de la Permaweb? Crea un problema en [Github](https://github.com/twilson63/permaweb-cookbook/issues) o considera [contribuir](../getting-started/contributing.md)
38 |
--------------------------------------------------------------------------------
/docs/src/es/guides/deploying-manifests/ardrive.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | ### ArDrive
5 |
6 | ---
7 |
8 | Puedes crear un manifiesto para una carpeta o un grupo de carpetas con `ardrive create-manifest` utilizando la [CLI de ArDrive](https://github.com/ardriveapp/ardrive-cli).
9 |
10 | Lectura adicional: [Documentación de la CLI de ArDrive](https://github.com/ardriveapp/ardrive-cli)
11 |
12 | ---
13 |
14 | Alternativamente, puedes crear un manifiesto utilizando la aplicación web [ArDrive](https://ardrive.io) seleccionando Nuevo → Crear manifiesto mientras estás dentro de una unidad.
15 |
16 | 
--------------------------------------------------------------------------------
/docs/src/es/guides/deploying-manifests/arweave-app.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | ### Arweave.app
5 |
6 | ---
7 |
8 | Al subir un directorio a través de [Arweave.app](http://Arweave.app), se creará automáticamente un manifiesto para todos los archivos en el directorio.
9 |
10 | 
11 |
12 | Alternativamente, puedes subir tu propio archivo de manifiesto manualmente, agregar la etiqueta siguiente y enviar la transacción.
13 |
14 | 
--------------------------------------------------------------------------------
/docs/src/es/guides/deploying-manifests/deployingManifests.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # Creación e Implementación de Manifiestos
5 |
6 | ---
7 |
8 | Esta guía explica cómo crear e implementar un manifiesto de ruta de forma manual.
9 |
10 | La página de conceptos fundamentales de los manifiestos de ruta ofrece más información sobre qué son los manifiestos y por qué podrían ser útiles para tu proyecto.
11 |
12 | Si sigues esta guía para implementar un manifiesto de ruta, deberá seguir la estructura de manifiesto presentada en la página de [conceptos fundamentales](https://cookbook.arweave.dev/concepts/manifests.html).
--------------------------------------------------------------------------------
/docs/src/es/guides/deploying-manifests/irys.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | ### Irys CLI (Previously Bundlr)
6 |
7 | ---
8 |
9 | El comando `irys upload-dir ` carga un directorio local en Arweave y automáticamente genera un manifiesto de los archivos.
10 |
11 | Si desea cargar su propio archivo de manifiesto manualmente, utilizando la bandera `--content-type "application/x.arweave-manifest+json"` en cualquier transacción, se designará como una transacción de manifiesto.
12 |
13 | ### Cliente JS de Irys
14 |
15 | ---
16 |
17 | Usando el siguiente fragmento carga un directorio local en Arweave y automáticamente genera un manifiesto de los archivos:
18 |
19 | ```js
20 | await irys.uploadFolder("./ruta/al/directorio", {
21 | indexFile: "./archivoIndice.html", // archivo de índice opcional (archivo que el usuario cargará al acceder al manifiesto)
22 | batchSize: 50, // cantidad de elementos para cargar de una vez
23 | keepDeleted: false, // si mantener o no los elementos previamente eliminados de cargas anteriores
24 | }); // devuelve el ID del manifiesto
25 | ```
26 |
27 | Si desea cargar su propio archivo de manifiesto manualmente, `await irys.upload(data, { tags: [{ name: "Content-type", value: "application/x.arweave-manifest+json" }] } )` designará los datos cargados como una transacción de manifiesto.
28 |
29 | ---
30 |
31 | Fuente y lectura adicional: [Documentación de Irys](http://docs.irys.xyz/developer-docs/irys-sdk#uploading-a-folder)
32 |
--------------------------------------------------------------------------------
/docs/src/es/guides/deployment/irys-cli.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | # Irys CLI (Previously Bundlr)
6 |
7 | ## Requisitos
8 |
9 | Se requiere una billetera Arweave para implementar. Si el tamaño del directorio es mayor a 100kb, se requiere una instancia de Irys financiada.
10 |
11 | ## Instalación
12 |
13 | Para instalar la CLI de Irys, ejecuta el siguiente comando
14 |
15 |
16 |
17 | ```console:no-line-numbers
18 | npm install -g @irys/sdk
19 | ```
20 |
21 |
22 |
23 |
24 | ```console:no-line-numbers
25 | yarn global add @irys/sdk
26 | ```
27 |
28 |
29 |
30 |
31 | ## Generación Estática
32 |
33 | Las aplicaciones de Permaweb son generadas estáticamente, lo que significa que el código y el contenido se generan de antemano y se almacenan en la red.
34 |
35 | A continuación se muestra un ejemplo de un sitio estático. Para implementarlo en Permaweb, el directorio `build` se pasará como argumento para la bandera `upload-dir`.
36 |
37 | ```js
38 | |- build
39 | |- index.html
40 | |- styles.css
41 | |- index.js
42 | ```
43 |
44 | ## Implementación
45 |
46 | ```console
47 | irys upload-dir [ruta a la carpeta] -w [ruta a la billetera] --index-file [index.html] -c [moneda] -h [nodo de Irys]
48 | ```
49 |
50 |
51 |
52 |
53 | ## Otros Comandos
54 |
55 | #### Financiar Irys
56 |
57 | ```console
58 | irys fund [monto] -h [nodo de Irys] -w [ruta a la billetera] -c [moneda]
59 | ```
60 |
61 | \* La financiación de una instancia de Irys puede tardar hasta 30 minutos en procesarse
62 |
63 | #### Verificar el Saldo de Irys
64 |
65 | ```console
66 | irys balance [dirección de billetera] -h [nodo de Irys] -c arweave
67 | ```
68 |
--------------------------------------------------------------------------------
/docs/src/es/guides/exm/api.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # Token de API de la Máquina de Ejecución
5 |
6 | EXM busca ser agnóstico de criptografía y solo requiere un token de API (también conocido como clave) para interactuar. Este token de API es necesario para la mayoría de las acciones en EXM, como implementaciones y operaciones de escritura.
7 |
8 | ## Creación de un token de API
9 |
10 | Para crear un token de API, se deben realizar los siguientes pasos:
11 |
12 | - Ir a la [página principal](https://exm.dev/).
13 | - Elegir el método preferido para Registrarse/Iniciar sesión.
14 |
15 | 
16 |
17 | - Después de ser redirigido al panel de control, hacer clic en "Nuevo Token".
18 |
19 | 
20 |
21 | - Copiar el token que se ha generado y usarlo con el SDK o CLI.
22 |
23 | ## Manejo seguro del token de API
24 |
25 | El token es un identificador de nuestra cuenta y nos permite acceder a funciones asociadas con ella. Por lo tanto, es vital asegurarse de que este token se mantenga en secreto para evitar cualquier spam y ataques a nuestras funciones. La mejor manera de hacerlo es utilizando variables de entorno.
26 |
27 | Hay dos formas de almacenar variables de entorno:
28 |
29 | 1. A través de la línea de comandos:
30 |
31 | En el directorio del proyecto, pasar el siguiente comando:
32 |
33 | ```bash
34 | export EXM_PK=
35 | ```
36 |
37 | 2. A través del sdk `dotenv`:
38 |
39 | - Ejecutar lo siguiente en la línea de comandos:
40 |
41 | ```bash
42 | npm install dotenv
43 |
44 | #O
45 |
46 | yarn add dotenv
47 | ```
48 | - Importar la biblioteca en el archivo usando las variables:
49 |
50 | ```jsx
51 | import dotenv from "dotenv";
52 | dotenv.config();
53 | ```
54 |
55 | Luego, esta clave se puede referir dentro de los archivos como `process.env.EXM_PK` sin exponerla ni subirla a sistemas de control de versiones como GitHub.
--------------------------------------------------------------------------------
/docs/src/es/guides/exm/js-sdk/sdk-intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # SDK de la Máquina de Ejecución
5 |
6 | El SDK de JavaScript permite el uso de la Máquina de Ejecución (EXM) en aplicaciones JavaScript y TypeScript. Para utilizar el SDK, se necesitan realizar los siguientes pasos de configuración.
7 |
8 | ## Instalación
9 |
10 | Para instalar EXM en tu proyecto, puedes utilizar `npm` o `yarn`.
11 |
12 |
13 |
14 |
15 | ```bash
16 | npm install @execution-machine/sdk
17 | ```
18 |
19 |
20 |
21 | ```bash
22 | yarn add @execution-machine/sdk
23 | ```
24 |
25 |
26 |
27 | ## Importación
28 |
29 | Cuando utilizas EXM con tu proyecto, el paquete debe ser importado de la siguiente manera.
30 |
31 |
32 |
33 |
34 | ```js
35 | import { Exm } from '@execution-machine/sdk';
36 | ```
37 |
38 |
39 |
40 | ## Creación de una instancia
41 |
42 | Para interactuar con EXM después de la instalación y la importación, se debe crear una instancia.
43 |
44 |
45 |
46 |
47 | ```js
48 | const exmInstance = new Exm({ token: 'MI_TOKEN_EXM' });
49 | ```
50 |
51 |
52 |
53 | ## Resumen
54 |
55 | Las siguientes guías mostrarán cómo desplegar funciones sin servidor utilizando el SDK de EXM JS y cómo interactuar con ellas.
--------------------------------------------------------------------------------
/docs/src/es/guides/posting-transactions/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | Por favor, consulte los ejemplos adjuntos al concepto fundamental de publicación de transacciones.
6 |
7 | - Ejemplo de [arweave-js](/guides/posting-transactions/arweave-js.md)
8 | - Ejemplo de [irys.xyz](/guides/posting-transactions/irys.md)
9 | - Ejemplo de [dispatch](/guides//posting-transactions/dispatch.md)
10 |
--------------------------------------------------------------------------------
/docs/src/es/guides/posting-transactions/dispatch.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # Publicar una Transacción usando Dispatch
5 | Las carteras de Arweave en el navegador tienen el concepto de despachar transacciones. ¡Si la transacción tiene un tamaño menor a 100KB se puede publicar de forma gratuita!
6 | ## Despachando una Transacción
7 | Esto se puede hacer sin ninguna dependencia de paquetes para la aplicación del cliente. Siempre y cuando el usuario tenga una cartera activa en el navegador y los datos sean menores a 100KB, las transacciones despachadas son gratuitas y se garantiza que serán confirmadas en la red.
8 |
9 | ```js:no-line-numbers
10 | // usar arweave-js para crear una transacción
11 | let tx = await arweave.createTransaction({ data:"¡Hola Mundo!" })
12 |
13 | // agregar algunas etiquetas personalizadas a la transacción
14 | tx.addTag('App-Name', 'PublicSquare')
15 | tx.addTag('Content-Type', 'text/plain')
16 | tx.addTag('Version', '1.0.1')
17 | tx.addTag('Type', 'post')
18 |
19 | // usar la cartera del navegador para despachar() la transacción
20 | let result = await window.arweaveWallet.dispatch(tx);
21 |
22 | // registrar el ID de la transacción
23 | console.log(result.id);
24 | ```
25 |
26 | ## Recursos
27 | * Para una visión general de todas las formas en las que se pueden publicar transacciones, consulta la sección [Publicar Transacciones](../../concepts/post-transactions.md) del libro de cocina.
--------------------------------------------------------------------------------
/docs/src/es/guides/querying-arweave/ar-gql.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # ar-gql
5 | Este paquete es una capa mínima encima de GraphQL, admite consultas parametrizadas con variables de consulta. También implementa la gestión de resultados paginados.
6 |
7 | ## Instalación
8 |
9 | Para instalar `ar-gql`, ejecuta
10 |
11 |
12 |
13 | ```console:no-line-numbers
14 | npm i ar-gql
15 | ```
16 |
17 |
18 |
19 | ```console:no-line-numbers
20 | yarn add ar-gql
21 | ```
22 |
23 |
24 |
25 | ## Ejemplo
26 | ```js:no-line-numbers
27 | import { arGql } from "ar-gql"
28 |
29 | const argql = arGql()
30 |
31 | (async () => {
32 | let results = await argql.run(`query( $count: Int ){
33 | transactions(
34 | first: $count,
35 | tags: [
36 | {
37 | name: "App-Name",
38 | values: ["PublicSquare"]
39 | },
40 | {
41 | name: "Content-Type",
42 | values: ["text/plain"]
43 | },
44 | ]
45 | ) {
46 | edges {
47 | node {
48 | id
49 | owner {
50 | address
51 | }
52 | data {
53 | size
54 | }
55 | block {
56 | height
57 | timestamp
58 | }
59 | tags {
60 | name,
61 | value
62 | }
63 | }
64 | }
65 | }
66 | }`, {count: 1});
67 | console.log(results);
68 | })();
69 | ```
70 |
71 | ## Recursos
72 | * [Página de Github de ar-gql](https://github.com/johnletey/arGql)
--------------------------------------------------------------------------------
/docs/src/es/guides/querying-arweave/ardb.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # ArDB
5 | Una biblioteca construida sobre GraphQL que permite consultar datos de transacciones y bloques de Arweave sin necesidad de memorizar los nombres de los parámetros de GraphQL. Simplemente construye consultas utilizando el autocompletado en tu editor de código favorito.
6 |
7 | ## Instalación
8 | ```console:no-line-numbers
9 | yarn add ardb
10 | ```
11 |
12 | ## Ejemplo
13 | ```js:no-line-numbers
14 | import Arweave from 'arweave';
15 | import ArDB from 'ardb';
16 |
17 | // inicializa una instancia de Arweave
18 | const arweave = Arweave.init({});
19 |
20 | // arweave es una instancia de cliente de Arweave
21 | const ardb = new ArDB(arweave);
22 |
23 | // Obtén una transacción individual por su id
24 | const tx = await ardb.search('transacción')
25 | .id('A235HBk5p4nEWfjBEGsAo56kYsmq7mCCyc5UZq5sgjY')
26 | .findOne();
27 |
28 | // Obtén un arreglo de transacciones e incluye solo el primer resultado
29 | const txs = await ardb.search('transacciones')
30 | .appName('SmartWeaveAction')
31 | .findOne();
32 |
33 | // Esto es lo mismo que hacer:
34 | const txs = await ardb.search('transacciones')
35 | .tag('App-Name', 'SmartWeaveAction')
36 | .limit(1)
37 | .find();
38 |
39 | // Busca varias transacciones de un propietario/dirección de billetera específico
40 | const txs = await ardb.search('transacciones')
41 | .from('BPr7vrFduuQqqVMu_tftxsScTKUq9ke0rx4q5C9ieQU')
42 | .find();
43 |
44 | // Continúa paginando a través de los resultados con...
45 | const newTxs = await ardb.next();
46 |
47 | // O puedes obtener todos los resultados de una vez haciendo:
48 | const txs = await ardb.search('bloques')
49 | .id('BkJ_h-GGIwfek-cJd-RaJrOXezAc0PmklItzzCLIF_aSk36FEjpOBuBDS27D2K_T')
50 | .findAll();
51 |
52 | ```
53 |
54 | ## Recursos
55 | * [Paquete NPM de ArDB](https://www.npmjs.com/package/ardb)
--------------------------------------------------------------------------------
/docs/src/es/guides/using-vue.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # Uso de Vue en Markdown
5 |
6 | ## Restricciones de acceso a la API del navegador
7 |
8 | Debido a que las aplicaciones de VuePress se renderizan en el servidor con Node.js al generar compilaciones estáticas, cualquier uso de Vue debe cumplir con los [requisitos de código universal](https://ssr.vuejs.org/es/universal.html). En resumen, asegúrate de solo acceder a las API del navegador / DOM en los hooks `beforeMount` o `mounted`.
9 |
10 | Si estás utilizando o demostrando componentes que no son compatibles con SSR (por ejemplo, aquellos que contienen directivas personalizadas), puedes envolverlos dentro del componente incorporado ``.
--------------------------------------------------------------------------------
/docs/src/es/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | onboarding: true
4 | ---
5 |
6 | # Cocinando con la Permaweb
7 |
8 | El libro de cocina de la Permaweb es un recurso para desarrolladores que proporciona los conceptos esenciales y las referencias para construir aplicaciones en la Permaweb. Cada concepto y referencia se centrará en aspectos específicos del ecosistema de desarrollo de la Permaweb, a la vez que proporcionará detalles adicionales y ejemplos de uso.
9 |
10 | ## Desarrolladores
11 |
12 | Bienvenidos a la comunidad de desarrollo de Arweave, donde el pasado queda grabado para siempre en la blockchain y el futuro está lleno de posibilidades infinitas. ¡Construyamos juntos la web descentralizada!
13 |
14 | [Más información](getting-started/welcome.md)
15 |
16 | ## Contribuciones
17 |
18 | El libro de cocina está diseñado de manera que resulta fácil para los nuevos desarrolladores de Permaweb contribuir. Incluso si no sabes hacer algo, contribuir al libro de cocina es una excelente manera de aprender.
19 |
20 | Echa un vistazo a todos los problemas abiertos aquí. Puedes encontrar las pautas de contribución aquí. Si descubres que el libro de cocina carece de algún concepto, guía o referencia, por favor agrega un problema.
21 |
22 | [Más información](getting-started/contributing.md)
23 |
24 | ## Cómo Leer el Libro de Cocina
25 |
26 | El libro de cocina de la Permaweb se divide en diferentes secciones, cada una dirigida a un objetivo diferente.
27 |
28 | | Sección | Descripción |
29 | | ------------- | ----------------------------------------------------------------------------------- |
30 | | Conceptos Básicos | Bloques fundamentales de la Permaweb que es importante conocer para el desarrollo |
31 | | Guías | Guías breves sobre diferentes herramientas para el desarrollo |
32 | | Referencias | Referencias a fragmentos de código comúnmente necesarios |
33 | | Kits de inicio | Kits iniciales de marcos de frontend para que puedas comenzar a construir en la Permaweb en poco tiempo |
34 |
35 | ## Inicios Rápidos
36 |
37 | Estas son guías breves para ayudar a los desarrolladores de todos los niveles de experiencia a publicar código en la Permaweb.
38 |
39 | - [Hola Mundo (Sin Código)](getting-started/quick-starts/hw-no-code.md)
--------------------------------------------------------------------------------
/docs/src/es/kits/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # Kits de inicio
5 |
6 | Los kits de inicio son repositorios tipo boilerplate para frameworks específicos configurados y listos para usar, para construir en la permaweb.
7 |
8 | - [Svelte](./svelte/index.md)
9 | - [React](./react/index.md)
10 | - [Vue](./vue/index.md)
--------------------------------------------------------------------------------
/docs/src/es/kits/react/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # Paquetes de inicio de React
5 |
6 | React es una biblioteca popular utilizada para construir interfaces de usuario. Junto con otras herramientas populares como create-react-app, un proyecto de React puede compilarse en un paquete. Este paquete se puede cargar como una transacción en la permaweb donde servirá como una aplicación de página única.
7 |
8 | Guías de paquetes de inicio de React:
9 |
10 | * [Vite](./vite.md) - utiliza Vite para construir una aplicación permaweb de React
11 | * [Create React App](./create-react-app.md) - utiliza Create React App para construir una aplicación permaweb de React
12 |
13 | ::: info Restricciones de la aplicación permaweb
14 | * 100% de la aplicación en el lado del cliente (sin backend en el lado del servidor)
15 | * Las aplicaciones se sirven desde una sub-ruta (https://[gateway]/[TX_ID])
16 | :::
--------------------------------------------------------------------------------
/docs/src/es/kits/svelte/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # Kits de inicio de Svelte
5 |
6 | Svelte es un marco que se compila en un paquete de JavaScript y en el proceso elimina el marco de la distribución de la aplicación. Esto resulta en un tamaño mucho más pequeño que otros marcos. Svelte es el marco perfecto para las aplicaciones Permaweb. Una aplicación Permaweb se construye sobre los principios de una aplicación de una sola página, pero vive en la red Arweave y se distribuye a través de los gateways de Permaweb.
7 |
8 | Guías de Kits de inicio de Svelte:
9 |
10 | * [Mínimo](./minimal.md) - lo mínimo necesario para construir una aplicación svelte permaweb
11 | * [Vite](./vite.md) - Svelte, Typescript y Vite
12 |
13 | ::: info Restricciones de la aplicación Permaweb
14 | * 100% aplicación frontend (sin backend del lado del servidor)
15 | * Las aplicaciones se sirven desde un subdirectorio (https://[gateway]/[TX_ID])
16 | :::
--------------------------------------------------------------------------------
/docs/src/es/kits/vue/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 | # Juegos de inicio de Vue
5 |
6 | Vue.js es un marco de JavaScript progresivo que permite construir interfaces de usuario. A diferencia de otros marcos, compila la plantilla en JavaScript durante el tiempo de ejecución, lo que se traduce en un tamaño de archivo más pequeño y un rendimiento más rápido. Vue es ideal para construir aplicaciones de una sola página escalables y de alto rendimiento, lo que lo convierte en una opción popular entre los desarrolladores front-end.
7 |
8 | Guía de kits de inicio de Vue:
9 |
10 | **Nota:** - Dado que `npm init vue@latest` ya utiliza vite, no hemos incluido una guía de vite para Vue.
11 |
12 | * [Crear aplicación Vue](./create-vue.md) - Utilice Crear Vue para construir de manera eficiente una aplicación basada en Vue.js con TypeScript y Vite en la permaweb moderna.
13 |
14 | ::: info Restricciones de la aplicación en la permaweb
15 | * Aplicación 100% front-end (sin backend en el lado del servidor)
16 | * Las aplicaciones se sirven desde una subruta (https://[gateway]/[TX_ID])
17 | :::
--------------------------------------------------------------------------------
/docs/src/es/references/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: es
3 | ---
4 |
5 | # Referencias
6 |
7 | ## Arweave Whitepaper
8 |
9 | - Documento técnico de Arweave: El nuevo estándar para el almacenamiento permanente y distribuido.
10 | - Disponible en: [https://www.arweave.org/whitepapers](https://www.arweave.org/whitepapers)
11 |
12 | ## Blockchain Infrastructure for Decentralized Applications
13 |
14 | - Artículo académico sobre la infraestructura blockchain para aplicaciones descentralizadas.
15 | - Autor: [Alan Alderson](https://www.example.com)
16 |
17 | ## Linguistics and Blockchain
18 |
19 | - Publicación académica sobre la relación entre lingüística y tecnología blockchain.
20 | - Autores: [John Johnson](https://www.example.com), [María Martínez](https://www.example.com)
21 |
22 | ## Understanding ArQL
23 |
24 | - Guía para comprender y utilizar ArQL, el lenguaje de consulta de Arweave.
25 | - Disponible en: [https://www.arweave.org/arql-documentation](https://www.arweave.org/arql-documentation)
26 |
--------------------------------------------------------------------------------
/docs/src/getting-started/README.md:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | ---
4 |
5 | # Cooking with the Permaweb
6 |
7 | The Permaweb Cookbook is a developer resource that provides the essential concepts and references for buiding applications on the Permaweb. Each concept and reference will focus on specific aspects of the Permaweb development ecosystem while providing additional details and usage examples.
8 |
9 | ## Developers
10 |
11 | Welcome to the Arweave development community, where the past is forever etched in the blockchain and the future is full of endless possibilities. Let's build the decentralized web together!
12 |
13 | [Read More](welcome.md)
14 |
15 | ## Contributing
16 |
17 | The Cookbook is designed in a way that makes it easy for new Permaweb developers to contribute. Even if you don't know how to do something, contributing to the cookbook is a great way to learn!
18 |
19 | Check out all open issues here. Contribution guidelines here. if you find the cookbook is missing a concept, guide or reference, please add an issue.
20 |
21 | [Read More](contributing.md)
22 |
23 |
24 | ## How to Read the Cookbook
25 |
26 | The Permaweb Cookbook is split into different sections, each aimed at a different goal.
27 |
28 | | Section | Description |
29 | | ------- | ----------- |
30 | | Core Concepts | Building blocks of the Permaweb that are good to know for development |
31 | | Guides | Snack-sized guides about different tools for development |
32 | | References | References to commonly needed code snippets |
33 | | Starter Kits | Front-end Framework Starters to get you started building on the Permaweb in no time |
34 |
35 | ## Quick Starts
36 |
37 | These are small guides to help developers from every experience level to ship code the the permaweb.
38 |
39 | - [Hello World (NodeJS)](quick-starts/hw-nodejs.md)
40 |
--------------------------------------------------------------------------------
/docs/src/getting-started/quick-starts/hw-cli.md:
--------------------------------------------------------------------------------
1 | # Hello World (CLI)
2 |
3 | This guide walks you through the most simple way to get data on to the permaweb using a command-line interface (CLI).
4 |
5 | ## Requirements
6 |
7 | - [NodeJS](https://nodejs.org) LTS or greater
8 |
9 | ## Description
10 |
11 | Using a terminal/console window create a new folder called `hw-permaweb-1`.
12 |
13 | ## Setup
14 |
15 | ```sh
16 | cd hw-permaweb-1
17 | npm init -y
18 | npm install arweave ardrive-cli
19 | ```
20 |
21 | ## Generate a wallet
22 |
23 | ```sh
24 | npx -y @permaweb/wallet > ~/.demo-arweave-wallet.json
25 | ```
26 |
27 | ## Create a web page
28 |
29 | ```sh
30 | echo "
Hello Permaweb
" > index.html
31 | ```
32 |
33 | ## Upload using Ardrive CLI
34 |
35 | ```sh
36 | # Create a Drive
37 | FOLDER_ID=$(npx ardrive create-drive -n public -w ~/.demo-arweave-wallet.json --turbo | jq -r '.created[] | select(.type == "folder") | .entityId')
38 | # Upload file
39 | TX_ID=$(npx ardrive upload-file -l index.html --content-type text/html -w ~/.demo-arweave-wallet.json --turbo -F ${FOLDER_ID} | jq -r '.created[] | select(.type == "file
40 | ") | .dataTxId')
41 | # open file from ar.io gateway
42 | open https://g8way.io/${TX_ID}
43 | ```
44 |
45 |
--------------------------------------------------------------------------------
/docs/src/getting-started/quick-starts/hw-no-code.md:
--------------------------------------------------------------------------------
1 | # Hello World (No Code)
2 |
3 | In this quick start we are going to upload an image to the permaweb with no code!
4 |
5 | ## Requirements
6 |
7 | * Computer
8 | * Internet
9 | * Modern web browser
10 |
11 | ## Create a wallet
12 |
13 | [https://arweave.app/add](https://arweave.app/add) or [https://arconnect.io](https://arconnect.io)
14 |
15 | ## Send some data to arweave
16 |
17 | Go to [https://hello_cookbook.arweave.dev](https://hello_cookbook.arweave.dev)
18 |
19 | Enter some data and click publish, connect your wallet and "BAM"
20 |
21 | ## Congrats!!
22 |
23 | You just published some data on Arweave using zero code.
24 |
25 | > To check out the project -> https://github.com/twilson63/pw-no-code-hello
26 |
--------------------------------------------------------------------------------
/docs/src/getting-started/welcome.md:
--------------------------------------------------------------------------------
1 | # Developing on the Permaweb
2 |
3 | ## Welcome to the Permaweb
4 |
5 | Creating applications on the permaweb, which is built on the Arweave protocol, is similar to building traditional web applications but with some key differences.
6 |
7 | One major difference is that data is stored on the permaweb permanently, as the name suggests, rather than on a centralized server. This means that once data is uploaded to the permaweb, it cannot be deleted or altered. This can be beneficial for applications that require tamper-proof data storage, such as supply chain management or voting systems.
8 |
9 | Another difference is that the permaweb is decentralized, meaning there is no central point of control or failure. This can provide increased security and reliability for applications.
10 |
11 | Additionally, the permaweb uses a unique token, called AR, to pay for the storage of data on the network. This can add a new layer of complexity to application development, as developers need to consider how to integrate AR into their applications and handle payments.
12 |
13 | Overall, the experience of creating applications on the permaweb can be challenging, but it can also be rewarding as it offers unique benefits over traditional web development.
14 |
15 | ## Hello Worlds
16 |
17 | * [Hello World (No Code)](./quick-starts/hw-no-code.md)
18 | * [Hello World (CLI)](./quick-starts/hw-cli.md)
--------------------------------------------------------------------------------
/docs/src/guides/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Permaweb Cookbook - Guides
3 | ---
4 |
5 | # Guides
6 |
7 | Snack-sized guides for the building blocks of the Permaweb
8 |
9 | - [ArProfile](arprofile.md)
10 | - [DNS Integration](dns-integration/server-side.md)
11 | - [Server Side](dns-integration/server-side.md)
12 | - [Spheron](dns-integration/spheron.md)
13 | - [Deploying Apps](deployment/index.md)
14 | - [arkb](deployment/arkb.md)
15 | - [github-action](deployment/github-action.md)
16 | - [Deploying PathManifests](deploying-manifests/deployingManifests.md)
17 | - [arweave.app](deploying-manifests/arweave-app.md)
18 | - [ardrive](deploying-manifests/ardrive.md)
19 | - [Deploying PSTs](deploying-psts.md)
20 | - [GraphQL](querying-arweave/queryingArweave.md)
21 | - [ArDB](querying-arweave/ardb.md)
22 | - [ar-gql](querying-arweave/ar-gql.md)
23 | - [Search Service](querying-arweave/search-indexing-service.md)
24 | - [Testing](testing/arlocal.md)
25 |
26 | > Do you think a permaweb guide is missing? Create a issue at [Github](https://github.com/twilson63/permaweb-cookbook/issues) or consider [contributing](../getting-started/contributing.md)
27 |
--------------------------------------------------------------------------------
/docs/src/guides/deploying-manifests/ardrive.md:
--------------------------------------------------------------------------------
1 | ### ArDrive
2 |
3 | ---
4 |
5 | You can create a manifest for a folder or group of folders with `ardrive create-manifest` using the [ArDrive CLI](https://github.com/ardriveapp/ardrive-cli).
6 |
7 | Further Reading: [ArDrive CLI Docs](https://github.com/ardriveapp/ardrive-cli)
8 |
9 | ---
10 |
11 | Alternatively, you can create a manifest using the [ArDrive](https://ardrive.io) web app by selecting New → Create manifest while inside of a drive.
12 |
13 | 
--------------------------------------------------------------------------------
/docs/src/guides/deploying-manifests/arweave-app.md:
--------------------------------------------------------------------------------
1 | ### Arweave.app
2 |
3 | ---
4 |
5 | Uploading a directory through [Arweave.app](http://Arweave.app) will automatically create a manifest for all of the files in the directory.
6 |
7 | 
8 |
9 | Alternatively, you can upload your own manifest file manually, add the following tag, and submit the transaction.
10 |
11 | 
--------------------------------------------------------------------------------
/docs/src/guides/deploying-manifests/deployingManifests.md:
--------------------------------------------------------------------------------
1 | # Creating and Deploying Manifests
2 |
3 | ---
4 |
5 | This guide lays out how to create and deploy a path manifest manually.
6 |
7 | The path manifests core concepts page has more information on what manifests are, and why they might be useful for your project.
8 |
9 | If you follow this guide to deploy a path manifest, it will need to follow the manifest structure laid out in the [core concepts](https://cookbook.arweave.dev/concepts/manifests.html) page.
--------------------------------------------------------------------------------
/docs/src/guides/deployment/index.md:
--------------------------------------------------------------------------------
1 | # Deployment
2 |
3 | - [arkb](arkb.md)
4 | - [github-action](github-action.md)
--------------------------------------------------------------------------------
/docs/src/guides/dns-integration/spheron.md:
--------------------------------------------------------------------------------
1 | # Spheron
2 |
3 | The Spheron Protocol is a decentralized platform designed to streamline the creation of modern dapps. It offers a seamless experience for developers, allowing for quick deployment, automatic scaling, and personalized content delivery on decentralized networks.
4 |
5 | Spheron uses a GitHub integration to handle continuous deployments and gives us the ability to integrate custom DNS to any given deployment.
6 |
7 | ## What you will need to set up a Spheron account
8 |
9 | * A GitHub account
10 | * A permaweb application identifier and is deployed on the permaweb
11 |
12 | ::: tip
13 | To deploy Arweave applications using Spheron, you will need the Pro Plan which is $20/month
14 | :::
15 |
16 | ## Authentication/Log in
17 |
18 | Spheron relies on GitHub, GitLab or BitBucket repo's for their deployments, similar to Vercel.
19 |
20 | To log in to Spheron, head to the [Spheron Aqua dashboard](https://app.spheron.network/) and select your preferred authentication.
21 |
22 | ## Import repo
23 |
24 | Once logged in, you will be presented with the user dashboard. Click the "New Project" button in the top right of the dashboard to import a repo. Select the repo you want and choose the option to deploy to Arweave.
25 |
26 | ## Connecting to DNS
27 |
28 | Now that you've imported your project and deployed, go to the "Domains" tab. Enter the domain name, environment and select a domain to point the deployment to.
29 |
30 | Before continuing, you will be asked to verify your configured records. Update the record in your domain manager. Updating a DNS can take up to 72 hours. You will see something similar to the image below:
31 |
32 |
33 |
34 | Once updated, you will need to verify in Spheron. Click the `Verify` button and you should be all set and ready to go. Now whenever you deploy a new version to GitHub, your domain will be updated with the newest version!🎉
35 |
36 |
37 | ::: tip
38 | To create a fully decentralized application, be sure to use [ArNS](https://ar.io/arns) or any decentralized DNS server
39 | :::
40 | ## Summary
41 |
42 | Spheron is a straight-forward way for deploying Permaweb applications to Arweave, and redirecting them to custom domains. Combining continuous integration and continuous deployment, ensuring a smooth developer experience all round!
43 |
44 |
45 |
--------------------------------------------------------------------------------
/docs/src/guides/exm/api.md:
--------------------------------------------------------------------------------
1 | # Execution Machine API Token
2 |
3 | EXM seeks to be crypto agnostic and requires only a single API token (also known as key) to interact with. This API key is required for most actions in EXM like deployments and write operations.
4 |
5 | ## Creating an API Token
6 |
7 | For creating an API token, the following steps must be performed:
8 |
9 | - Go to the [main page](https://exm.dev/).
10 | - Choose the preferred method to Sign-Up/ Sign-In.
11 |
12 | 
13 |
14 | - After being redirected to the dashboard, click on "New Token".
15 |
16 | 
17 |
18 | - Copy the token that has been generated and use it with the SDK or CLI.
19 |
20 | ## Handling API Token safely
21 |
22 | The token is an identifier to our account and lets us access functions associated with it. Hence, it is vital to ensure this token is kept secret to prevent any spams and attacks to our functions. The best way to do so is using environment variables.
23 |
24 | There are two ways to store environment variables:
25 |
26 | 1. Through the command line:
27 |
28 | In the directory of the project, pass the following command:
29 |
30 | ```bash
31 | export EXM_PK=
32 | ```
33 |
34 | 2. Through the `dotenv` sdk:
35 |
36 | - Run the following in the command line:
37 |
38 | ```bash
39 | npm install dotenv
40 |
41 | #OR
42 |
43 | yarn add dotenv
44 | ```
45 | - Import the library in file using the variables:
46 |
47 | ```jsx
48 | import dotenv from "dotenv";
49 | dotenv.config();
50 | ```
51 |
52 | Then this key can be refered inside files as `process.env.EXM_PK` without exposing it or pushing it to version control systems like GitHub.
--------------------------------------------------------------------------------
/docs/src/guides/exm/js-sdk/sdk-intro.md:
--------------------------------------------------------------------------------
1 | # Execution Machine SDK
2 |
3 | The JavaScript SDK enables the usage of Execution Machine (EXM) in JavaScript and TypeScript applications. To use the SDK the following setup steps are needed.
4 |
5 | ## Install
6 |
7 | To install EXM in your project you can use `npm` or `yarn`.
8 |
9 |
10 |
11 |
12 | ```bash
13 | npm install @execution-machine/sdk
14 | ```
15 |
16 |
17 |
18 |
19 | ```bash
20 | yarn add @execution-machine/sdk
21 | ```
22 |
23 |
24 |
25 |
26 | ## Import
27 |
28 | When using EXM with your project the package must be imported as follows.
29 |
30 |
31 |
32 |
33 | ```js
34 | import { Exm } from '@execution-machine/sdk';
35 | ```
36 |
37 |
38 |
39 | ## Creating an instance
40 |
41 | To interact with EXM after installation and importing, an instance must be created.
42 |
43 |
44 |
45 |
46 | ```js
47 | const exmInstance = new Exm({ token: 'MY_EXM_TOKEN' });
48 | ```
49 |
50 |
51 |
52 | ## Summary
53 |
54 | The following guides will show how to deploy serverless functions using the EXM JS SDK, and how to interact with them.
--------------------------------------------------------------------------------
/docs/src/guides/exm/js-sdk/sdk-read.md:
--------------------------------------------------------------------------------
1 | # Read from Serverless Functions with Execution Machine SDK
2 |
3 | There are two ways of reading state from an EXM serverless functions. As explained in the [introduction](../intro.md#serverless-functions-on-arweave), EXM stores a copy of the function on a cache layer for rapidly serving applications but also uploads the function on Arweave to maintain decentralisation and its associated benefits. As a result of this, the function state can be read either from EXM's cache layer or directly from Arweave.
4 |
5 | 1. Reading from EXM's cache layer:
6 |
7 | The read call reads the latest state as stored on EXM's cached layer. This layer is specifically designed for rapily serving applications. It takes an optimistic approach and updates the function state immediately upoon receiving a transaction request.
8 |
9 |
10 |
11 |
12 | ```js
13 | import { Exm } from '@execution-machine/sdk';
14 | import { functionId } from './functionId.js';
15 |
16 | // init new EXM instance
17 | const exm = new Exm({ token: process.env.EXM_API_TOKEN });
18 |
19 | // read from cached layer
20 | const readResult = await exm.functions.read(functionId);
21 | console.log(readResult);
22 | ```
23 |
24 |
25 |
26 |
27 | 2. Reading directly from Arweave (Evaluate):
28 |
29 | The evaluate call returns the latest state as successfully processed on Arweave. This latest state is calculated by [lazy evaluation](../intro.md#how-does-it-work-in-the-background), which evaluates the initial state and the interactions with the function in order of ocurrence to arrive at the latest state.
30 |
31 |
32 |
33 |
34 | ```js
35 | import { Exm } from '@execution-machine/sdk';
36 | import { functionId } from './functionId.js';
37 |
38 | // init new EXM instance
39 | const exm = new Exm({ token: process.env.EXM_API_TOKEN });
40 |
41 | // evaluate from arweave
42 | const evalResult = await exm.functions.evaluate(functionId);
43 | console.log(evalResult);
44 | ```
45 |
46 |
47 |
48 |
49 | ::: tip
50 | Reading from Arweave is recommended for verification purposes only. The function state returned from the evaluate call can be checked against the information returned by the cache layer to ensure its authenticity. There may be a slight lag in posting the transaction request and it updating on the network.
51 | :::
52 |
53 |
--------------------------------------------------------------------------------
/docs/src/guides/posting-transactions/README.md:
--------------------------------------------------------------------------------
1 | Please the the examples attached to Posting Transactions Core Concept.
2 |
3 | - [arweave-js](/guides/posting-transactions/arweave-js.md) example
4 | - [dispatch](/guides//posting-transactions/dispatch.md) example
5 | - [arseeding-js](/guides//posting-transactions/arseeding-js.md) example
6 | - [turbo](/guides//posting-transactions/turbo.md) example
7 |
--------------------------------------------------------------------------------
/docs/src/guides/posting-transactions/arseeding-js.md:
--------------------------------------------------------------------------------
1 | # Posting Transactions using arseeding.js
2 | You can use the `arseeding-js` JavaScript SDK package to publish transactions on the Arweave network. Arseeding automatically broadcasts the transaction to all Arweave nodes in the network, ensuring that the transaction is promptly received in the pending pool of all Arweave nodes, thus increasing the transaction's packaging speed.
3 | ## Installing arseeding.js
4 | To install `arseeding.js` run:
5 |
6 |
7 |
8 |
9 | ```console:no-line-numbers
10 | npm install arseeding-js
11 | ```
12 |
13 |
14 |
15 |
16 | ```console:no-line-numbers
17 | yarn add arseeding-js
18 | ```
19 |
20 |
21 |
22 |
23 | ## Transaction for Uploading Data
24 | When using Arseeding, you must pre-fund your account on [everpay](https://app.everpay.io/). This balance can be funded with $AR tokens or other cryptocurrencies. Another distinction is that the Arseeding service ensures that your data will make it onto the blockchain.
25 |
26 | ```js:no-line-numbers
27 | const { genNodeAPI } = require('arseeding-js')
28 |
29 | const run = async () => {
30 | const instance = genNodeAPI('YOUR PRIVATE KEY')
31 | const arseedUrl = 'https://arseed.web3infra.dev'
32 | const data = Buffer.from('........')
33 | const payCurrencyTag = 'ethereum-usdc-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' // everPay supported token tag (chainType-symbol-id)
34 | const options = {
35 | tags: [{ name: 'Content-Type', value: 'image/png' }]
36 | }
37 | const res = await instance.sendAndPay(arseedUrl, data, payCurrencyTag, options)
38 | console.log('res', res)
39 | }
40 | run()
41 | ```
42 |
43 |
44 | ## Resources
45 | * For an overview of all methods for publishing transactions, please refer to the [Publishing Transactions](../../concepts/post-transactions.md) section in the operation manual.
46 |
47 | * You can find the complete Arseeding documentation on the [Arseeding website](https://web3infra.dev/docs/arseeding/introduction/lightNode/).
48 |
49 | * Follow the Arseeding Upload Manifest tutorial [here](https://web3infra.dev/docs/arseeding/sdk/arseeding-js/manifest/).
--------------------------------------------------------------------------------
/docs/src/guides/posting-transactions/dispatch.md:
--------------------------------------------------------------------------------
1 | # Posting a Transaction using Dispatch
2 | Arweave Browser wallets have the concept of dispatching transactions. If the transaction is under 100KB in size it can be posted for free!
3 | ## Dispatching a Transaction
4 | This can be done without any package dependencies for the client app. As long as the user has a browser wallet active and the data is less than 100KB, dispatched transactions are free and guaranteed to be confirmed on the network.
5 |
6 | ```js:no-line-numbers
7 | // use arweave-js to create a transaction
8 | let tx = await arweave.createTransaction({ data:"Hello World!" })
9 |
10 | // add some custom tags to the transaction
11 | tx.addTag('App-Name', 'PublicSquare')
12 | tx.addTag('Content-Type', 'text/plain')
13 | tx.addTag('Version', '1.0.1')
14 | tx.addTag('Type', 'post')
15 |
16 | // use the browser wallet to dispatch() the transaction
17 | let result = await window.arweaveWallet.dispatch(tx);
18 |
19 | // log out the transactino id
20 | console.log(result.id);
21 | ```
22 |
23 | ## Resources
24 | * For an overview of all the ways you can post transactions, see the [Posting Transactions](../../concepts/post-transactions.md) section of the cookbook.
--------------------------------------------------------------------------------
/docs/src/guides/querying-arweave/ar-gql.md:
--------------------------------------------------------------------------------
1 | # ar-gql
2 | This package is a minimal layer on top of GraphQL, it supports parameterized queries with query variables. It also implements management of paged results.
3 |
4 | ## Installation
5 |
6 | To install `ar-gql run
7 |
8 |
9 |
10 | ```console:no-line-numbers
11 | npm i ar-gql
12 | ```
13 |
14 |
15 |
16 | ```console:no-line-numbers
17 | yarn add ar-gql
18 | ```
19 |
20 |
21 |
22 | ## Example
23 | ```js:no-line-numbers
24 | import { arGql } from "ar-gql"
25 |
26 | const argql = arGql()
27 |
28 | (async () => {
29 | let results = await argql.run(`query( $count: Int ){
30 | transactions(
31 | first: $count,
32 | tags: [
33 | {
34 | name: "App-Name",
35 | values: ["PublicSquare"]
36 | },
37 | {
38 | name: "Content-Type",
39 | values: ["text/plain"]
40 | },
41 | ]
42 | ) {
43 | edges {
44 | node {
45 | id
46 | owner {
47 | address
48 | }
49 | data {
50 | size
51 | }
52 | block {
53 | height
54 | timestamp
55 | }
56 | tags {
57 | name,
58 | value
59 | }
60 | }
61 | }
62 | }
63 | }`, {count: 1});
64 | console.log(results);
65 | })();
66 | ```
67 |
68 | ## Resources
69 | * [ar-gql github page](https://github.com/johnletey/arGql)
70 |
--------------------------------------------------------------------------------
/docs/src/guides/querying-arweave/ardb.md:
--------------------------------------------------------------------------------
1 | # ArDB
2 | A library built on top of GraphQL that makes it possible to query transaction and block data from arweave without having to memorize GraphQL parameter names. Just build queries using autocomplete in your favorite code editor.
3 |
4 | ## Installation
5 | ```console:no-line-numbers
6 | yarn add ardb
7 | ```
8 |
9 | ## Example
10 | ```js:no-line-numbers
11 | import Arweave from 'arweave';
12 | import ArDB from 'ardb';
13 |
14 | // initialize an arweave instance
15 | const arweave = Arweave.init({});
16 |
17 | // arweave is Arweave Client instance
18 | const ardb = new ArDB(arweave);
19 |
20 | // Get a single transaction by its id
21 | const tx = await ardb.search('transaction')
22 | .id('A235HBk5p4nEWfjBEGsAo56kYsmq7mCCyc5UZq5sgjY')
23 | .findOne();
24 |
25 | // Get an array of transactions and include only the first result
26 | const txs = await ardb.search('transactions')
27 | .appName('SmartWeaveAction')
28 | .findOne();
29 |
30 | // This is the same as doing:
31 | const txs = await ardb.search('transactions')
32 | .tag('App-Name', 'SmartWeaveAction')
33 | .limit(1)
34 | .find();
35 |
36 | // Search for multiple transactions from a specific owner/wallet address
37 | const txs = await ardb.search('transactions')
38 | .from('BPr7vrFduuQqqVMu_tftxsScTKUq9ke0rx4q5C9ieQU')
39 | .find();
40 |
41 | // Continue paging though the results with...
42 | const newTxs = await ardb.next();
43 |
44 | // Or you could get all results at once by doing:
45 | const txs = await ardb.search('blocks')
46 | .id('BkJ_h-GGIwfek-cJd-RaJrOXezAc0PmklItzzCLIF_aSk36FEjpOBuBDS27D2K_T')
47 | .findAll();
48 |
49 | ```
50 |
51 | ## Resources
52 | * [ArDB NPM package](https://www.npmjs.com/package/ardb)
--------------------------------------------------------------------------------
/docs/src/guides/smartweave/atomic-assets/index.md:
--------------------------------------------------------------------------------
1 | # Atomic Assets
2 |
3 | An atomic asset is a unique package that includes data, labels (also known as tags), and a specific agreement, all under a single, unchangeable identifier. This allows applications and users to access the data, labels, and agreement by using just this one identifier.
4 |
5 | To enable trading of the Atomic Asset, we must connect it to something called a SmartWeave Token. This connection transforms the asset into what's known as an Atomic Token and allows it to be exchanged or traded.
6 |
7 | The SmartWeave Token has a special feature called a balances object that keeps track of who owns the tokens related to that particular asset. This ensures that ownership and trades are recorded and managed accurately.
8 |
9 | ## Deploying Atomic Assets
10 |
11 |
12 | * [using ArDrive CLI](ardrive-cli)
--------------------------------------------------------------------------------
/docs/src/guides/using-vue.md:
--------------------------------------------------------------------------------
1 | # Using Vue in Markdown
2 |
3 | ## Browser API Access Restrictions
4 |
5 | Because VuePress applications are server-rendered in Node.js when generating static builds, any Vue usage must conform to the [universal code requirements](https://ssr.vuejs.org/en/universal.html). In short, make sure to only access Browser / DOM APIs in `beforeMount` or `mounted` hooks.
6 |
7 | If you are using or demoing components that are not SSR friendly (for example containing custom directives), you can wrap them inside the built-in `` component:
8 |
9 | ##
10 |
--------------------------------------------------------------------------------
/docs/src/guides/vouch.md:
--------------------------------------------------------------------------------
1 | # Vouch
2 |
3 | There are a few ways to query an Arweave address to verify if it has been vouched by a service. Below is two of those approaches.
4 | ## VouchDAO Package
5 | The `isVouched` function is made available to use in your applications in a straight-forward way.
6 |
7 | #### Installation
8 | Add the package:
9 |
10 |
11 |
12 | ```console:no-line-numbers
13 | npm i vouchdao
14 | ```
15 |
16 |
17 |
18 |
19 | ```console:no-line-numbers
20 | yarn add vouchdao
21 | ```
22 |
23 |
24 |
25 |
26 | #### Usage
27 | Inside of an async function you can use the `isVouched` function which will return true if a user is vouched.
28 |
29 | ```js:no-line-numbers
30 | import { isVouched } from 'vouchdao'
31 | (async () => {
32 | const res = await isVouched("ARWEAVE_ADDRESS") // true || undefined
33 | // ...
34 | })();
35 | ```
36 |
37 | ## Using GraphQL
38 | You can query the Arweave network using GraphQL to find out if a given Arweave address has been vouched.
39 |
40 | ```graphql
41 | query {
42 | transactions(
43 | tags:{name:"Vouch-For", values:["ARWEAVE_ADDRESS"]}
44 | ) {
45 | edges {
46 | node {
47 | id
48 | tags {
49 | name
50 | value
51 | }
52 | }
53 | }
54 | }
55 | }
56 | ```
57 |
58 | If the address has been vouched, an array of nodes will be returned with tags pertaining to the service that issues the ANS-109. You can cross reference the `owner address` value with the passed community votes to ensure the service has been verified through community vote via VouchDAO.
59 |
60 | ```graphql
61 | "owner": {
62 | "address": "Ax_uXyLQBPZSQ15movzv9-O1mDo30khslqN64qD27Z8"
63 | },
64 | "tags": [
65 | {
66 | "name": "Content-Type",
67 | "value": "application/json"
68 | },
69 | {
70 | "name": "App-Name",
71 | "value": "Vouch"
72 | },
73 | {
74 | "name": "App-Version",
75 | "value": "0.1"
76 | },
77 | {
78 | "name": "Verification-Method",
79 | "value": "Twitter"
80 | },
81 | {
82 | "name": "Vouch-For",
83 | "value": "ARWEAVE_ADDRESS"
84 | }
85 | ]
86 | ```
87 |
88 | ## Resources
89 | * [VouchDAO](https://vouch-dao.arweave.dev)
90 | * [VouchDAO Contract](https://sonar.warp.cc/?#/app/contract/_z0ch80z_daDUFqC9jHjfOL8nekJcok4ZRkE_UesYsk)
91 | * [Arweave/GraphQL Playground](https://arweave.net/graphql)
--------------------------------------------------------------------------------
/docs/src/id/concepts/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Konsep Inti
6 |
7 | Dasar-dasar Arweave dan Permaweb.
8 |
9 | - [Mengirim Transaksi](post-transactions.md)
10 | - [Metadata (Tag)](tags.md)
11 | - [Meminta](queryTransactions.md)
12 | - [Mengambil Data](/guides/http-api.md)
13 | - [Jenis Transaksi](bundles.md)
14 | - [Bundle](bundles.md)
15 | - [Manifes Jalur](manifests.md)
16 | - [Dompet dan Kunci](keyfiles-and-wallets.md)
17 | - [Permaweb](permaweb.md)
18 | - [Aplikasi Permaweb](permawebApplications.md)
19 | - [Layanan Gateway](gateways.md)
20 | - [Layanan Bundling](bundlers.md)
21 | - [SmartWeave](smartweave.md)
22 | - [Sistem Nama Arweave (ArNS)](arns.md)
23 | - [Token Atomik](atomic-tokens.md)
24 | - [Token Pembagian Keuntungan (PST)](psts.md)
25 |
26 | > Apakah Anda berpikir bahwa ada konsep inti Permaweb yang hilang? Buat *issues* di [Github](https://github.com/twilson63/permaweb-cookbook/issues) atau pertimbangkan untuk [berkontribusi](../getting-started/contributing.md)
--------------------------------------------------------------------------------
/docs/src/id/concepts/atomic-tokens.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Konsep dan Prinsip Atomic Token
6 |
7 | 
8 |
9 | Sebuah Atomic Token adalah identifier permanen tunggal yang merujuk pada data dan Kontrak SmartWeave di Permaweb.
10 |
11 | ## Spesifikasi
12 |
13 | Data HARUS disimpan di jaringan arweave dan dapat diakses dengan Menggunakan Identifier Transaksi
14 |
15 | Kontrak HARUS mengimplementasikan objek `balances` yang mewakili kepemilikan Atomic Token
16 |
17 | Kontrak HARUS mengimplementasikan fungsi `transfer` yang mengambil argumen berikut:
18 | - target {Alamat Wallet atau Kontrak}
19 | - qty {Jumlah}
20 |
21 | > Fungsi transfer seharusnya mentransfer kepemilikan dari pemanggil ke target
22 |
23 | ## Opsi
24 |
25 | _Opsi implementasi yang dapat membuat Atomic Token ditemukan dan diperdagangkan di Permaweb_
26 |
27 | [Verto Flex](https://github.com/useverto/flex) - Pustaka Flex memberikan Atomic token Anda untuk dijual atau dibeli tanpa harus percaya kepada bursa.
28 |
29 | [Tanda Temuan - ANS 110](https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-110.md) - Tag tambahan ini dapat membantu aplikasi dan layanan Permaweb menemukan token Anda.
30 |
31 | [Periksa Panduan Ini](../guides/atomic-tokens/intro.md)
--------------------------------------------------------------------------------
/docs/src/id/concepts/bundlers.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Layanan Bundling
6 |
7 | ---
8 |
9 | Dengan layanan bundling, pengguna dapat mengirimkan transaksi data mereka ke layanan bundling untuk "dibundle" bersama dengan transaksi pengguna lain dan dikirimkan sebagai satu transaksi Arweave tunggal dalam blok Arweave yang akan datang.
10 |
11 | ### Mengirimkan ke layanan bundling
12 |
13 | ---
14 |
15 | Anda dapat membaca lebih lanjut tentang cara mengirimkan transaksi Anda ke layanan bundling [di sini](/guides/posting-transactions/irys.md).
16 |
17 | ### Apa itu Bundle?
18 |
19 | ---
20 |
21 | Deskripsi bundle transaksi dan manfaatnya dapat ditemukan [di sini](/concepts/bundles.md).
22 |
23 | ### Apa itu node Bundler?
24 |
25 | ---
26 |
27 | Seorang bundler adalah node yang bertanggung jawab untuk menerima transaksi atau item data dari pengguna, mem-bundlenya, dan mengirimkannya ke jaringan Arweave (dengan jaminan bahwa mereka akan diunggah dengan ID transaksi tertentu).
28 |
29 | Pionir layanan bundling dan bundler terbesar saat ini adalah [irys.xyz](https://irys.xyz). Node Irys menjalankan:
30 |
31 | - Proksi terbalik NGINX
32 | - Proses API HTTP
33 | - Cache Redis
34 | - Database SQL (Postgres)
35 | - Proses pekerja
36 |
37 | Semuanya memastikan bahwa data dipertahankan hingga diunggah ke Arweave.
38 |
39 | ### Mendukung berbagai mata uang
40 |
41 | ---
42 |
43 | Fitur utama dari layanan bundling adalah bahwa karena mereka membayar untuk transaksi dasar Arweave yang akan dikirimkan (menggunakan token AR), mereka dapat memilih untuk mengaktifkan pembayaran biaya penyimpanan dengan berbagai jenis token yang berbeda. Ini adalah titik masuk utama bagi rantai lain untuk mengaktifkan penyimpanan permanen Arweave untuk pengguna mereka.
44 |
--------------------------------------------------------------------------------
/docs/src/id/concepts/permaweb.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Selamat datang di Permaweb
6 |
7 | Permaweb mirip dengan web, tetapi bersifat permanen. Para pengembang membangun di atas layanan Permaweb untuk menciptakan aplikasi dan situs yang akan ada selamanya di Arweave.
8 |
9 | 
10 |
11 | Manfaat Permaweb.
12 |
13 | 1. Situs dan aplikasi bersifat permanen, Anda tidak perlu khawatir tentang mereka menghilang (bahkan jika tim yang mendukungnya berpindah).
14 | 2. Pengembang aplikasi harus memastikan setiap versi baru dari aplikasi benar-benar menambahkan nilai, jika tidak, mengapa Anda akan beralih dari yang lama.
15 | 3. Karena semua aplikasi Permaweb berbagi lapisan penyimpanan yang sama, Arweave, mereka dapat semua berkomposisi dengan data satu sama lain.
16 | 4. Data Anda dimiliki oleh dompet Anda dan dapat mengikuti Anda dari satu aplikasi ke aplikasi lainnya.
17 |
18 | ## Bandingkan Web Tradisional vs Permaweb
19 |
20 | 
21 |
22 | Untuk informasi lebih lanjut tentang Permaweb, kunjungi [postingan di medium](https://arweave.medium.com/welcome-to-the-permaweb-ce0e6c73ddfb).
--------------------------------------------------------------------------------
/docs/src/id/getting-started/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | ---
6 |
7 | # Cooking dengan Permaweb
8 |
9 | Permaweb Cookbook adalah sumber daya pengembang yang menyediakan konsep-konsep penting dan referensi untuk membangun aplikasi di Permaweb. Setiap konsep dan referensi akan berfokus pada aspek-aspek tertentu dari ekosistem pengembangan Permaweb sambil memberikan detail tambahan dan contoh penggunaan.
10 |
11 | ## Pengembang
12 |
13 | Selamat datang di komunitas pengembangan Arweave, di mana masa lalu selamanya terukir dalam blockchain dan masa depan penuh dengan kemungkinan tak terbatas. Mari bangun web terdesentralisasi bersama-sama!
14 |
15 | [Baca Selengkapnya](welcome.md)
16 |
17 | ## Berkontribusi
18 |
19 | Cookbook dirancang sedemikian rupa sehingga memudahkan pengembang Permaweb baru untuk berkontribusi. Bahkan jika Anda tidak tahu cara melakukan sesuatu, berkontribusi pada cookbook adalah cara yang bagus untuk belajar!
20 |
21 | Lihat semua isu terbuka di sini. Pedoman kontribusi di sini. Jika Anda merasa cookbook kekurangan konsep, panduan, atau referensi, silakan tambahkan isu.
22 |
23 | [Baca Selengkapnya](contributing.md)
24 |
25 | ## Cara Membaca Cookbook
26 |
27 | Permaweb Cookbook dibagi menjadi beberapa bagian berbeda, masing-masing ditujukan untuk tujuan yang berbeda.
28 |
29 | | Bagian | Deskripsi |
30 | | ------- | ----------- |
31 | | Konsep Inti | Bangunan dasar Permaweb yang penting untuk diketahui dalam pengembangan |
32 | | Panduan | Panduan berukuran snack tentang berbagai alat untuk pengembangan |
33 | | Referensi | Referensi untuk potongan kode yang sering dibutuhkan |
34 | | Starter Kit | Starter Kit Kerangka kerja front-end untuk memulai membangun di Permaweb dalam waktu singkat |
35 |
36 | ## Memulai Cepat
37 |
38 | Ini adalah panduan kecil untuk membantu pengembang dari berbagai tingkatan pengalaman untuk menyusun kode di Permaweb.
39 |
40 | - [Hello World (NodeJS)](quick-starts/hw-nodejs.md)
--------------------------------------------------------------------------------
/docs/src/id/getting-started/quick-starts/hw-cli.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Hello World (CLI)
6 |
7 | Panduan ini akan membantu Anda untuk melakukan hal yang paling sederhana, yaitu mengunggah data ke permaweb menggunakan antarmuka baris perintah (CLI).
8 |
9 | ## Persyaratan
10 |
11 | - [NodeJS](https://nodejs.org) LTS atau yang lebih baru
12 |
13 | ## Deskripsi
14 |
15 | Dengan menggunakan jendela terminal atau konsol, buat folder baru bernama `hw-permaweb-1`.
16 |
17 | ## Persiapan
18 |
19 | ```sh
20 | cd hw-permaweb-1
21 | npm init -y
22 | npm install arweave @irys/sdk
23 | ```
24 |
25 | ## Membuat sebuah dompet (wallet)
26 |
27 | ```sh
28 | node -e "require('arweave').init({}).wallets.generate().then(JSON.stringify).then(console.log.bind(console))" > wallet.json
29 | ```
30 |
31 | ## Membuat halaman web
32 |
33 | ```sh
34 | echo "
Halo Permaweb
" > index.html
35 | ```
36 |
37 | ## Mengunggah menggunakan Irys
38 |
39 | ```sh
40 | irys upload index.html -c arweave -h https://node2.irys.xyz -w ./wallet.json
41 | ```
42 |
--------------------------------------------------------------------------------
/docs/src/id/getting-started/quick-starts/hw-no-code.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Hello World (No Code)
6 |
7 | Dalam panduan cepat ini, kita akan mengunggah gambar ke permaweb tanpa perlu menulis kode apa pun!
8 |
9 | ## Persyaratan
10 |
11 | * Komputer
12 | * Koneksi internet
13 | * Browser web modern
14 |
15 | ## Buat dompet (wallet)
16 |
17 | Buka [https://arweave.app/add](https://arweave.app/add) atau [https://arconnect.io](https://arconnect.io)
18 |
19 | ## Kirim data ke arweave
20 |
21 | Buka [https://hello_cookbook.arweave.dev](https://hello_cookbook.arweave.dev)
22 |
23 | Masukkan beberapa data dan klik "publish," sambungkan dompet Anda, dan "BAM"
24 |
25 | ## Selamat!!
26 |
27 | Anda baru saja mempublikasikan beberapa data di Arweave tanpa perlu menulis kode apa pun.
28 |
29 | > Untuk melihat proyeknya -> [https://github.com/twilson63/pw-no-code-hello](https://github.com/twilson63/pw-no-code-hello)
30 |
--------------------------------------------------------------------------------
/docs/src/id/getting-started/welcome.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Pengembangan di Permaweb
6 |
7 | ## Selamat datang di Permaweb
8 |
9 | Membuat aplikasi di permaweb, yang dibangun di atas protokol Arweave, mirip dengan membangun aplikasi web tradisional tetapi dengan beberapa perbedaan kunci.
10 |
11 | Salah satu perbedaan utama adalah bahwa data disimpan di permaweb secara permanen, sesuai dengan namanya, daripada di server terpusat. Ini berarti bahwa setelah data diunggah ke permaweb, tidak dapat dihapus atau diubah. Hal ini dapat bermanfaat untuk aplikasi yang memerlukan penyimpanan data yang tahan terhadap manipulasi, seperti manajemen rantai pasokan atau sistem pemungutan suara.
12 |
13 | Perbedaan lainnya adalah bahwa permaweb bersifat terdesentralisasi, artinya tidak ada titik kontrol atau kegagalan pusat. Hal ini dapat memberikan keamanan dan kehandalan yang lebih tinggi untuk aplikasi.
14 |
15 | Selain itu, permaweb menggunakan token unik, yang disebut AR, untuk membayar penyimpanan data di jaringan. Hal ini dapat menambah lapisan kompleksitas baru dalam pengembangan aplikasi, karena pengembang perlu mempertimbangkan bagaimana mengintegrasikan AR ke dalam aplikasi mereka dan mengelola pembayaran.
16 |
17 | Secara keseluruhan, pengalaman membuat aplikasi di permaweb bisa menantang, tetapi juga bisa memberikan keuntungan unik dibandingkan dengan pengembangan web tradisional.
18 |
19 | ## Hello Worlds
20 |
21 | * [Hello World (Tanpa Kode)](./quick-starts/hw-no-code.md)
22 | * [Hello World (CLI)](./quick-starts/hw-cli.md)
--------------------------------------------------------------------------------
/docs/src/id/guides/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Panduan
6 |
7 | Panduan berukuran snack untuk elemen-elemen dasar Permaweb:
8 |
9 | - [ArProfile](arprofile.md)
10 | - [Integrasi DNS](dns-integration/server-side.md)
11 | - [Sisi Server](dns-integration/server-side.md)
12 | - [Spheron](dns-integration/spheron.md)
13 | - [Mengunggah Aplikasi](deployment/irys-cli.md)
14 | - [arkb](deployment/arkb.md)
15 | - [irys-cli](deployment/irys-cli.md)
16 | - [tindakan-github](deployment/github-action.md)
17 | - [Mengunggah PathManifests](deploying-manifests/deployingManifests.md)
18 | - [arweave.app](deploying-manifests/arweave-app.md)
19 | - [ardrive](deploying-manifests/ardrive.md)
20 | - [irys.xyz](deploying-manifests/irys.md)
21 | - [Mengunggah PSTs](deploying-psts.md)
22 | - [GraphQL](querying-arweave/queryingArweave.md)
23 | - [ArDB](querying-arweave/ardb.md)
24 | - [ar-gql](querying-arweave/ar-gql.md)
25 | - [Layanan Pencarian](querying-arweave/search-indexing-service.md)
26 | - SmartWeave
27 | - [Token Atomik](atomic-tokens/intro.md)
28 | - [Vouch](vouch.md)
29 | - Kontrak Warp
30 | - [Pengantar](smartweave/warp/intro.md)
31 | - [Mengunggah Kontrak](smartweave/warp/deploying-contracts.md)
32 | - [Baca Status Kontrak](smartweave/warp/readstate.md)
33 | - [Interaksi Kontrak Tulis](smartweave/warp//write-interactions.md)
34 | - [Evolusi Kontrak](smartweave/warp//evolve.md)
35 | - [Pengujian](testing/arlocal.md)
36 |
37 | > Apakah Anda berpikir ada panduan Permaweb yang hilang? Buat isu di [Github](https://github.com/twilson63/permaweb-cookbook/issues) atau pertimbangkan [berkontribusi](../getting-started/contributing.md)
38 |
--------------------------------------------------------------------------------
/docs/src/id/guides/deploying-manifests/ardrive.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | ### ArDrive
6 |
7 | ---
8 |
9 | Anda dapat membuat sebuah manifest untuk sebuah folder atau sekelompok folder dengan menggunakan `ardrive create-manifest` menggunakan [ArDrive CLI](https://github.com/ardriveapp/ardrive-cli).
10 |
11 | Baca lebih lanjut: [Dokumentasi ArDrive CLI](https://github.com/ardriveapp/ardrive-cli)
12 |
13 | ---
14 |
15 | Sebagai alternatif, Anda dapat membuat sebuah manifest menggunakan aplikasi web [ArDrive](https://ardrive.io) dengan memilih New → Create manifest saat berada dalam sebuah drive.
16 |
17 | 
--------------------------------------------------------------------------------
/docs/src/id/guides/deploying-manifests/arweave-app.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | ### Arweave.app
6 |
7 | ---
8 |
9 | Mengunggah sebuah direktori melalui [Arweave.app](http://Arweave.app) akan secara otomatis membuat manifest untuk semua file dalam direktori tersebut.
10 |
11 | 
12 |
13 | Atau, Anda dapat mengunggah file manifest sendiri secara manual, tambahkan tag berikut, dan kirimkan transaksi.
14 |
15 | 
--------------------------------------------------------------------------------
/docs/src/id/guides/deploying-manifests/deployingManifests.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Creating and Deploying Manifests
6 |
7 | ---
8 |
9 | Panduan ini menjelaskan cara membuat dan mendeploy manifest path secara manual.
10 |
11 | Halaman inti konsep manifest path memiliki informasi lebih lanjut tentang apa itu manifest dan mengapa mereka bisa berguna untuk proyek Anda.
12 |
13 | Jika Anda mengikuti panduan ini untuk mendeploy manifest path, itu harus mengikuti struktur manifest yang dijelaskan di halaman [konsep inti](https://cookbook.arweave.dev/concepts/manifests.html).
--------------------------------------------------------------------------------
/docs/src/id/guides/deploying-manifests/irys.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | ### Irys CLI
6 |
7 | ---
8 |
9 | `irys upload-dir ` mengunggah direktori lokal ke Arweave dan secara otomatis menghasilkan manifest untuk file-file tersebut.
10 |
11 | Jika Anda ingin mengunggah file manifest sendiri secara manual, menggunakan flag `--content-type "application/x.arweave-manifest+json"` pada transaksi apa pun akan menunjukkannya sebagai transaksi manifest.
12 |
13 | ### Klien Irys JS
14 |
15 | ---
16 |
17 | Menggunakan potongan kode berikut mengunggah direktori lokal ke Arweave dan secara otomatis menghasilkan manifest untuk file-file tersebut:
18 |
19 | ```js
20 | await irys.uploadFolder("./path/to/folder", {
21 | indexFile: "./optionalIndex.html", // file indeks opsional (file yang akan dimuat oleh pengguna saat mengakses manifest)
22 | batchSize: 50, // jumlah item yang akan diunggah sekaligus
23 | keepDeleted: false, // apakah akan menyimpan item yang sudah dihapus dari unggahan sebelumnya
24 | }); // mengembalikan ID manifest
25 | ```
26 |
27 | Jika Anda ingin mengunggah file manifest sendiri secara manual, `await irys.upload(data, { tags: [{ name: "Content-type", value: "application/x.arweave-manifest+json" }] } )` akan menunjukkannya sebagai transaksi manifest.
28 |
29 | ---
30 |
31 | Sumber dan Bacaan Lebih Lanjut: [Dokumentasi Irys](http://docs.irys.xyz/developer-docs/irys-sdk)
32 |
--------------------------------------------------------------------------------
/docs/src/id/guides/deployment/irys-cli.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Irys CLI (Previously Bundlr)
6 |
7 | ## Prasyarat
8 |
9 | Diperlukan dompet Arweave untuk melakukan penyebaran. Jika ukuran direktori lebih dari 100kb, diperlukan instance Irys yang telah didanai.
10 |
11 | ## Instalasi
12 |
13 | Untuk menginstal Irys CLI, jalankan perintah berikut:
14 |
15 |
16 |
17 | ```console:no-line-numbers
18 | npm install -g @irys/sdk
19 | ```
20 |
21 |
22 |
23 |
24 | ```console:no-line-numbers
25 | yarn global add @irys/sdk
26 | ```
27 |
28 |
29 |
30 |
31 | ## Pembangunan Statis
32 |
33 | Aplikasi Permaweb dibangun secara statis, artinya kode dan kontennya dibangun sebelumnya dan disimpan di jaringan.
34 |
35 | Di bawah ini adalah contoh situs statis. Untuk mendistribusikannya ke Permaweb, direktori `build` akan digunakan sebagai argumen untuk flag `upload-dir`.
36 |
37 | ```js
38 | |- build
39 | |- index.html
40 | |- styles.css
41 | |- index.js
42 | ```
43 |
44 | ## Penyebaran
45 |
46 | ```console
47 | irys upload-dir [path to folder] -w [path to wallet] --index-file [index.html] -c [mata uang] -h [node Irys]
48 | ```
49 |
50 |
51 |
52 |
53 | ## Perintah Lain
54 |
55 | #### Dana Irys
56 |
57 | ```console
58 | irys fund [jumlah] -h [node Irys] -w [path to wallet] -c [mata uang]
59 | ```
60 |
61 | \* Mendanai instance Irys dapat memakan waktu hingga 30 menit untuk diproses
62 |
63 | #### Periksa Saldo Irys
64 |
65 | ```console
66 | irys balance [alamat dompet] -h [node Irys] -c arweave
67 | ```
68 |
--------------------------------------------------------------------------------
/docs/src/id/guides/exm/api.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Execution Machine API Token
6 |
7 | EXM berusaha menjadi agnostik kripto dan hanya memerlukan satu token API (juga dikenal sebagai kunci) untuk berinteraksi. Token API ini diperlukan untuk sebagian besar tindakan di EXM seperti penyebaran dan operasi tulis.
8 |
9 | ## Membuat Token API
10 |
11 | Untuk membuat token API, langkah-langkah berikut harus dilakukan:
12 |
13 | - Buka [halaman utama](https://exm.dev/).
14 | - Pilih metode yang diinginkan untuk Daftar Masuk/Log Masuk.
15 |
16 | 
17 |
18 | - Setelah diarahkan ke dasbor, klik "Token Baru".
19 |
20 | 
21 |
22 | - Salin token yang telah dibuat dan gunakan dengan SDK atau CLI.
23 |
24 | ## Menangani Token API dengan Aman
25 |
26 | Token tersebut adalah pengidentifikasi akun kita dan memungkinkan kita mengakses fungsi yang terkait dengannya. Oleh karena itu, sangat penting untuk memastikan token ini tetap rahasia untuk mencegah spam dan serangan terhadap fungsi-fungsi kita. Cara terbaik untuk melakukannya adalah dengan menggunakan variabel lingkungan.
27 |
28 | Ada dua cara untuk menyimpan variabel lingkungan:
29 |
30 | 1. Melalui baris perintah:
31 |
32 | Di direktori proyek, jalankan perintah berikut:
33 |
34 | ```bash
35 | export EXM_PK=
36 | ```
37 |
38 | 2. Melalui sdk `dotenv`:
39 |
40 | - Jalankan perintah berikut di baris perintah:
41 |
42 | ```bash
43 | npm install dotenv
44 |
45 | #ATAU
46 |
47 | yarn add dotenv
48 | ```
49 | - Impor pustaka ini dalam file menggunakan variabel:
50 |
51 | ```jsx
52 | import dotenv from "dotenv";
53 | dotenv.config();
54 | ```
55 |
56 | Maka kunci ini dapat dirujuk dalam file sebagai `process.env.EXM_PK` tanpa mengeksposnya atau mendorongnya ke sistem kontrol versi seperti GitHub.
--------------------------------------------------------------------------------
/docs/src/id/guides/exm/js-sdk/sdk-intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # SDK Execution Machine
6 |
7 | SDK JavaScript memungkinkan penggunaan Execution Machine (EXM) dalam aplikasi JavaScript dan TypeScript. Untuk menggunakan SDK, langkah-langkah pengaturan berikut diperlukan.
8 |
9 | ## Instalasi
10 |
11 | Untuk menginstal EXM dalam proyek Anda, Anda dapat menggunakan `npm` atau `yarn`.
12 |
13 |
14 |
15 |
16 | ```bash
17 | npm install @execution-machine/sdk
18 | ```
19 |
20 |
21 |
22 |
23 | ```bash
24 | yarn add @execution-machine/sdk
25 | ```
26 |
27 |
28 |
29 |
30 | ## Impor
31 |
32 | Saat menggunakan EXM dengan proyek Anda, paket harus diimpor sebagai berikut.
33 |
34 |
35 |
36 |
37 | ```js
38 | import { Exm } from '@execution-machine/sdk';
39 | ```
40 |
41 |
42 |
43 | ## Membuat Instance
44 |
45 | Untuk berinteraksi dengan EXM setelah instalasi dan impor, sebuah instance harus dibuat.
46 |
47 |
48 |
49 |
50 | ```js
51 | const exmInstance = new Exm({ token: 'MY_EXM_TOKEN' });
52 | ```
53 |
54 |
55 |
56 | ## Ringkasan
57 |
58 | Panduan-panduan berikut akan menunjukkan cara mendeploy fungsi tanpa server menggunakan EXM JS SDK, dan bagaimana berinteraksi dengan mereka.
--------------------------------------------------------------------------------
/docs/src/id/guides/exm/js-sdk/sdk-read.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Membaca dari Fungsi Tanpa Server dengan SDK Execution Machine
6 |
7 | Ada dua cara untuk membaca status dari fungsi tanpa server EXM. Seperti yang dijelaskan dalam [pengantar](../intro.md#serverless-functions-on-arweave), EXM menyimpan salinan fungsi pada lapisan cache untuk melayani aplikasi dengan cepat tetapi juga mengunggah fungsi ke Arweave untuk menjaga desentralisasi dan manfaat yang terkait dengannya. Akibatnya, status fungsi dapat dibaca baik dari lapisan cache EXM maupun langsung dari Arweave.
8 |
9 | 1. Membaca dari lapisan cache EXM:
10 |
11 | Panggilan baca membaca status terbaru seperti yang disimpan pada lapisan cache EXM. Lapisan ini dirancang khusus untuk melayani aplikasi dengan cepat. Ini mengambil pendekatan optimis dan memperbarui status fungsi segera setelah menerima permintaan transaksi.
12 |
13 |
14 |
15 |
16 | ```js
17 | import { Exm } from '@execution-machine/sdk';
18 | import { functionId } from './functionId.js';
19 |
20 | // init new EXM instance
21 | const exm = new Exm({ token: process.env.EXM_API_TOKEN });
22 |
23 | // read from cached layer
24 | const readResult = await exm.functions.read(functionId);
25 | console.log(readResult);
26 | ```
27 |
28 |
29 |
30 |
31 | 2. Membaca langsung dari Arweave (Evaluasi):
32 |
33 | Panggilan evaluasi mengembalikan status terbaru yang berhasil diproses di Arweave. Status terbaru ini dihitung dengan [evaluasi malas](../intro.md#how-does-it-work-in-the-background), yang mengevaluasi status awal dan interaksi dengan fungsi dalam urutan kejadian untuk sampai pada status terbaru.
34 |
35 |
36 |
37 |
38 | ```js
39 | import { Exm } from '@execution-machine/sdk';
40 | import { functionId } from './functionId.js';
41 |
42 | // init new EXM instance
43 | const exm = new Exm({ token: process.env.EXM_API_TOKEN });
44 |
45 | // evaluate from arweave
46 | const evalResult = await exm.functions.evaluate(functionId);
47 | console.log(evalResult);
48 | ```
49 |
50 |
51 |
52 |
53 | ::: tip
54 | Membaca dari Arweave direkomendasikan hanya untuk tujuan verifikasi. Status fungsi yang dikembalikan dari panggilan evaluasi dapat diperiksa dengan informasi yang dikembalikan oleh lapisan cache untuk memastikan keasliannya. Mungkin ada sedikit keterlambatan dalam pengiriman permintaan transaksi dan pembaruan di jaringan.
55 | :::
--------------------------------------------------------------------------------
/docs/src/id/guides/posting-transactions/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | Silakan lihat contoh yang terlampir pada Konsep Inti Posting Transaksi.
6 |
7 | - Contoh [arweave-js](/guides/posting-transactions/arweave-js.md)
8 | - Contoh [irys.xyz](/guides/posting-transactions/irys.md)
9 | - Contoh [dispatch](/guides/posting-transactions/dispatch.md)
10 |
--------------------------------------------------------------------------------
/docs/src/id/guides/posting-transactions/dispatch.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Mengirimkan Transaksi dengan Menggunakan Dispatch
6 | Dompet Arweave di peramban memiliki konsep pengiriman transaksi. Jika ukuran transaksi kurang dari 100KB, maka transaksi tersebut dapat diposting secara gratis!
7 | ## Mengirimkan Transaksi
8 | Ini dapat dilakukan tanpa ketergantungan paket apa pun untuk aplikasi klien. Selama pengguna memiliki dompet peramban yang aktif dan data kurang dari 100KB, transaksi yang dikirimkan gratis dan dijamin akan dikonfirmasi di jaringan.
9 |
10 | ```js:no-line-numbers
11 | // menggunakan arweave-js untuk membuat transaksi
12 | let tx = await arweave.createTransaction({ data:"Hello World!" })
13 |
14 | // menambahkan beberapa tag kustom ke transaksi
15 | tx.addTag('App-Name', 'PublicSquare')
16 | tx.addTag('Content-Type', 'text/plain')
17 | tx.addTag('Version', '1.0.1')
18 | tx.addTag('Type', 'post')
19 |
20 | // menggunakan dompet peramban untuk mendispatch() transaksi
21 | let result = await window.arweaveWallet.dispatch(tx);
22 |
23 | // mencetak ID transaksi
24 | console.log(result.id);
25 | ```
26 |
27 | ## Sumber Daya
28 | * Untuk gambaran semua cara Anda dapat memposting transaksi, lihat bagian [Posting Transactions](../../concepts/post-transactions.md) dari cookbook.
--------------------------------------------------------------------------------
/docs/src/id/guides/posting-transactions/irys.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Mengirimkan Transaksi menggunakan irys.xyz
6 |
7 | Mengirimkan transaksi ke irys.xyz dapat dilakukan dengan menggunakan paket javascript `irys.xyz/sdk`. Layanan bundling memungkinkan konfirmasi transaksi yang diposting dan mendukung banyak ribu transaksi per blok melalui penggunaan bundel transaksi.
8 |
9 | ## Menginstal irys.xyz/sdk
10 |
11 | Untuk menginstal `irys/sdk`, jalankan
12 |
13 |
14 |
15 |
16 | ```console:no-line-numbers
17 | npm install @irys/sdk
18 | ```
19 |
20 |
21 |
22 |
23 | ```console:no-line-numbers
24 | yarn add @irys/sdk
25 | ```
26 |
27 |
28 |
29 |
30 | ## Menginisialisasi Irys Network Client
31 |
32 | Perbedaan antara pengiriman transaksi Layer 1 dan transaksi Layer 2 yang dibundel adalah bahwa saat menggunakan Irys Anda harus melakukan deposit di node Irys sebelumnya. Deposit ini dapat dilakukan menggunakan token AR atau berbagai mata uang kripto lainnya. Perbedaan lainnya adalah bahwa layanan Irys menjamin data Anda akan tiba di rantai.
33 |
34 | ```js:no-line-numbers
35 | import Irys from '@irys/sdk';
36 | import fs from "fs";
37 |
38 | // muat berkas kunci dompet JWK dari disk
39 | let key = JSON.parse(fs.readFileSync("walletFile.txt").toString());
40 |
41 | // inisialisasi SDK Irys
42 | const irys = new Irys({ "http://node1.irys.xyz", "arweave", key });
43 | ```
44 |
45 | ## Mengirimkan Transaksi yang Dibundel
46 |
47 | ```js:no-line-numbers
48 | // muat data dari disk
49 | const imageData = fs.readFileSync(`images/myImage.png`);
50 |
51 | // tambahkan tag kustom yang memberi tahu gateway cara menyajikan data ini ke peramban
52 | const tags = [
53 | {name: "Content-Type", value: "image/png"},
54 | ];
55 |
56 | // buat transaksi yang dibundel dan tandatangani
57 | const tx = irys.createTransaction(imageData, { tags });
58 | await tx.sign();
59 |
60 | // unggah transaksi ke Irys untuk dimasukkan dalam bundel yang akan diposting
61 | await tx.upload();
62 | ```
63 |
64 | ## Sumber Daya
65 |
66 | - Untuk gambaran semua cara Anda dapat memposting transaksi, lihat bagian [Posting Transactions](../../concepts/post-transactions.md) dari buku masak.
67 |
68 | - Dokumentasi lengkap Irys client dapat ditemukan di [situs web irys.xyz](https://docs.irys.xyz)
69 |
70 | - Tutorial dan lokakarya untuk [mengunggah koleksi NFT](http://docs.irys.xyz/hands-on/tutorials/uploading-nfts) menggunakan Irys.
71 |
--------------------------------------------------------------------------------
/docs/src/id/guides/querying-arweave/ar-gql.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # ar-gql
6 | Paket ini adalah lapisan minimal di atas GraphQL, mendukung kueri berparameter dengan variabel kueri. Ini juga mengimplementasikan pengelolaan hasil berhalaman.
7 |
8 | ## Instalasi
9 |
10 | Untuk menginstal `ar-gql`, jalankan
11 |
12 |
13 |
14 | ```console:no-line-numbers
15 | npm i ar-gql
16 | ```
17 |
18 |
19 |
20 | ```console:no-line-numbers
21 | yarn add ar-gql
22 | ```
23 |
24 |
25 |
26 | ## Contoh
27 | ```js:no-line-numbers
28 | import { arGql } from "ar-gql"
29 |
30 | const argql = arGql()
31 |
32 | (async () => {
33 | let results = await argql.run(`query( $count: Int ){
34 | transactions(
35 | first: $count,
36 | tags: [
37 | {
38 | name: "App-Name",
39 | values: ["PublicSquare"]
40 | },
41 | {
42 | name: "Content-Type",
43 | values: ["text/plain"]
44 | },
45 | ]
46 | ) {
47 | edges {
48 | node {
49 | id
50 | owner {
51 | address
52 | }
53 | data {
54 | size
55 | }
56 | block {
57 | height
58 | timestamp
59 | }
60 | tags {
61 | name,
62 | value
63 | }
64 | }
65 | }
66 | }
67 | }`, {count: 1});
68 | console.log(results);
69 | })();
70 | ```
71 |
72 | ## Sumber Daya
73 | * [Halaman github ar-gql](https://github.com/johnletey/arGql)
--------------------------------------------------------------------------------
/docs/src/id/guides/querying-arweave/ardb.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # ArDB
6 | Sebuah perpustakaan yang dibangun di atas GraphQL yang memungkinkan Anda untuk mengambil data transaksi dan blok dari Arweave tanpa harus menghafal nama parameter GraphQL. Cukup bangun kueri dengan menggunakan fitur otomatisasi lengkap di editor kode favorit Anda.
7 |
8 | ## Instalasi
9 | ```console:no-line-numbers
10 | yarn add ardb
11 | ```
12 |
13 | ## Contoh
14 | ```js:no-line-numbers
15 | import Arweave from 'arweave';
16 | import ArDB from 'ardb';
17 |
18 | // inisialisasi instans arweave
19 | const arweave = Arweave.init({});
20 |
21 | // arweave adalah instans Klien Arweave
22 | const ardb = new ArDB(arweave);
23 |
24 | // Dapatkan satu transaksi berdasarkan ID-nya
25 | const tx = await ardb.search('transaction')
26 | .id('A235HBk5p4nEWfjBEGsAo56kYsmq7mCCyc5UZq5sgjY')
27 | .findOne();
28 |
29 | // Dapatkan array transaksi dan sertakan hanya hasil pertama
30 | const txs = await ardb.search('transactions')
31 | .appName('SmartWeaveAction')
32 | .findOne();
33 |
34 | // Ini sama dengan melakukan hal berikut:
35 | const txs = await ardb.search('transactions')
36 | .tag('App-Name', 'SmartWeaveAction')
37 | .limit(1)
38 | .find();
39 |
40 | // Cari beberapa transaksi dari pemilik/alamat dompet tertentu
41 | const txs = await ardb.search('transactions')
42 | .from('BPr7vrFduuQqqVMu_tftxsScTKUq9ke0rx4q5C9ieQU')
43 | .find();
44 |
45 | // Lanjutkan penelusuran hasil dengan...
46 | const newTxs = await ardb.next();
47 |
48 | // Atau Anda bisa mendapatkan semua hasil sekaligus dengan melakukan:
49 | const txs = await ardb.search('blocks')
50 | .id('BkJ_h-GGIwfek-cJd-RaJrOXezAc0PmklItzzCLIF_aSk36FEjpOBuBDS27D2K_T')
51 | .findAll();
52 |
53 | ```
54 |
55 | ## Sumber Daya
56 | * [Paket NPM ArDB](https://www.npmjs.com/package/ardb)
--------------------------------------------------------------------------------
/docs/src/id/guides/smartweave/warp/readstate.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # SDK Warp (SmartWeave) - ReadState
6 |
7 | Status kontrak SmartWeave dihitung melalui evaluasi malas, yang berarti evaluasi status terjadi saat membaca, bukan saat menulis. Saat membaca kontrak, SDK mengumpulkan semua interaksi status, mengurutkannya, dan menjalankannya terhadap kontrak sumber menggunakan pola reduce atau fold.
8 |
9 | ## Readstate Dasar
10 |
11 | ```ts
12 | const warp = WarpFactory.forMainnet()
13 | const CONTRACT_ID = '_z0ch80z_daDUFqC9jHjfOL8nekJcok4ZRkE_UesYsk'
14 |
15 | const result = await warp.contract(CONTRACT_ID).readState()
16 |
17 | // log current state
18 | console.log(result.cachedValue.state)
19 | ```
20 |
21 | ## Readstate Lanjutan
22 |
23 | Beberapa kontrak membaca status kontrak lain atau memanggil atau menulis ke kontrak lain. Saat meminta status kontrak ini, perlu ada pengaturan evaluasi.
24 |
25 | ```ts
26 | const warp = WarpFactory.forMainnet()
27 | const CONTRACT_ID = 'FMRHYgSijiUNBrFy-XqyNNXenHsCV0ThR4lGAPO4chA'
28 |
29 | const result = await warp.contract(CONTRACT_ID)
30 | .setEvaluationOptions({
31 | internalWrites: true,
32 | allowBigInt: true
33 | })
34 | .readState()
35 |
36 | // log current state
37 | console.log(result.cachedValue.state)
38 | ```
39 |
40 | ### Opsi Evaluasi Umum
41 |
42 | | Nama | Deskripsi |
43 | | ---- | ----------- |
44 | | internalWrites | Mengevaluasi kontrak yang berisi tulisan internal ke kontrak lain |
45 | | allowBigInt | Mengevaluasi kontrak yang menggunakan BigInt yang dapat Anda pelajari lebih lanjut tentang bigInt [Dokumentasi MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) |
46 | | unsafeClient | Nilai ini bisa `allow`, `skip`, atau `throw`. Anda sebaiknya menghindari penggunaan unsafeClient dalam kontrak Anda karena dapat menghasilkan hasil yang tidak dapat diprediksi. |
47 |
48 | ## Readstate dari BlockHeight atau Sortkey Tertentu
49 |
50 | Anda mungkin ingin melihat status sebelumnya, bukan status saat ini, dengan menyediakan blockHeight Anda dapat membaca status kontrak pada block height tertentu.
51 |
52 | ```ts
53 | const { sortKey, cachedValue } = await contract.readState(1090111)
54 | ```
55 |
56 | ## Ringkasan
57 |
58 | Membaca status saat ini dari Kontrak SmartWeave melakukan evaluasi status dengan menarik semua interaksi dan memproses setiap interaksi melalui metode fold. Pendekatan ini unik untuk permaweb dan memerlukan pemahaman unik tentang bagaimana kode Kontrak SmartWeave Anda dieksekusi.
--------------------------------------------------------------------------------
/docs/src/id/guides/using-vue.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Menggunakan Vue di Markdown
6 |
7 | ## Pembatasan Akses API Browser
8 |
9 | Karena aplikasi VuePress dirrender oleh server dalam Node.js saat menghasilkan build statis, penggunaan Vue harus sesuai dengan [persyaratan kode universal](https://ssr.vuejs.org/en/universal.html). Singkatnya, pastikan hanya mengakses API Browser / DOM dalam hook `beforeMount` atau `mounted`.
10 |
11 | Jika Anda menggunakan atau mendemo komponen yang tidak ramah terhadap SSR (misalnya mengandung direktif kustom), Anda dapat melingkupi mereka dalam komponen bawaan ``:
12 |
13 | ##
14 |
--------------------------------------------------------------------------------
/docs/src/id/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | onboarding: true
4 | ---
5 |
6 | # Cooking dengan Permaweb
7 |
8 | Cookbook Permaweb adalah sumber daya pengembang yang menyediakan konsep-konsep penting dan referensi untuk membangun aplikasi di Permaweb. Setiap konsep dan referensi akan berfokus pada aspek-aspek tertentu dari ekosistem pengembangan Permaweb sambil memberikan rincian tambahan dan contoh penggunaan.
9 |
10 | ## Pengembang
11 |
12 | Selamat datang di komunitas pengembangan Arweave, di mana masa lalu selamanya terukir di blockchain dan masa depan penuh dengan kemungkinan tak terbatas. Mari kita bangun web terdesentralisasi bersama!
13 |
14 | [Baca Lebih Lanjut](getting-started/welcome.md)
15 |
16 | ## Berkontribusi
17 |
18 | Cookbook ini dirancang dengan cara yang memudahkan pengembang Permaweb yang baru untuk berkontribusi. Bahkan jika Anda tidak tahu cara melakukan sesuatu, berkontribusi pada cookbook adalah cara yang bagus untuk belajar!
19 |
20 | Periksa semua isu terbuka di sini. Pedoman kontribusi di sini. Jika Anda menemukan bahwa cookbook ini kekurangan konsep, panduan, atau referensi, silakan tambahkan isu.
21 |
22 | [Baca Lebih Lanjut](getting-started/contributing.md)
23 |
24 | ## Cara Membaca Cookbook
25 |
26 | Cookbook Permaweb dibagi menjadi berbagai bagian, masing-masing ditujukan untuk tujuan yang berbeda.
27 |
28 | | Bagian | Deskripsi |
29 | | ------------- | --------------------------------------------------------------------------- |
30 | | Konsep Inti | Blok bangunan Permaweb yang penting untuk diketahui dalam pengembangan |
31 | | Panduan | Panduan berukuran snack tentang berbagai alat untuk pengembangan |
32 | | Referensi | Referensi ke potongan kode yang sering dibutuhkan |
33 | | Kit Pemula | Starter Framework Front-end untuk memulai membangun di Permaweb dengan cepat |
34 |
35 | ## Mulai Cepat
36 |
37 | Ini adalah panduan kecil untuk membantu pengembang dari berbagai tingkat pengalaman dalam mengirim kode ke Permaweb.
38 |
39 | - [Hello Word (Tanpa Kode)](getting-started/quick-starts/hw-no-code.md)
--------------------------------------------------------------------------------
/docs/src/id/kits/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Starter Kits
6 |
7 | Starter kits adalah repositori boilerplate untuk kerangka kerja tertentu yang telah dikonfigurasi dan siap digunakan untuk membangun di permaweb.
8 |
9 | - [Svelte](./svelte/index.md)
10 | - [React](./react/index.md)
11 | - [Vue](./vue/index.md)
12 |
--------------------------------------------------------------------------------
/docs/src/id/kits/react/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # React Starter Kits
6 |
7 | React adalah sebuah library populer yang digunakan untuk membangun antarmuka pengguna. Bersama dengan alat-alat populer lainnya seperti create-react-app, sebuah proyek React dapat dikompilasi menjadi bundel. Bundel ini dapat diunggah sebagai transaksi ke permaweb di mana ia akan berfungsi sebagai aplikasi satu halaman.
8 |
9 | Panduan Memulai React:
10 |
11 | * [Vite](./vite.md) - memanfaatkan Vite untuk membangun aplikasi React di permaweb
12 | * [Create React App](./create-react-app.md) - memanfaatkan Create React App untuk membangun aplikasi React di permaweb
13 |
14 | ::: info Batasan Aplikasi Permaweb
15 | * Aplikasi sepenuhnya berbasis front-end (Tanpa Backend Server-Side)
16 | * Aplikasi disajikan dari sub-path (https://[gateway]/[TX_ID])
17 | :::
--------------------------------------------------------------------------------
/docs/src/id/kits/svelte/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Svelte Starter Kits
6 |
7 | Svelte adalah sebuah framework yang dikompilasi menjadi bundel JavaScript dan dalam prosesnya menghapus framework tersebut dari distribusi aplikasi. Ini menghasilkan jejak yang jauh lebih kecil daripada kerangka kerja lainnya. Svelte adalah kerangka kerja yang sempurna untuk Aplikasi Permaweb. Aplikasi Permaweb dibangun berdasarkan prinsip Aplikasi Halaman Tunggal (Single Page Application), tetapi berada di jaringan Arweave dan didistribusikan oleh gateway Permaweb.
8 |
9 | Panduan Awal Svelte:
10 |
11 | * [Minimal](./minimal.md) - yang diperlukan minimum untuk membangun aplikasi svelte permaweb
12 | * [Vite](./vite.md) - Svelte, TypeScript, dan Vite
13 |
14 | ::: info Kendala Aplikasi Permaweb
15 | * Aplikasi 100% Front-end (Tanpa Backend Server)
16 | * Aplikasi disajikan dari sub-path (https://[gateway]/[TX_ID])
17 | :::
--------------------------------------------------------------------------------
/docs/src/id/kits/vue/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Vue Starter Kits
6 |
7 | Vue.js adalah kerangka kerja JavaScript progresif yang memungkinkan pembuatan antarmuka pengguna. Berbeda dengan kerangka kerja lainnya, Vue.js mengompilasi template menjadi JavaScript saat runtime, sehingga menghasilkan ukuran berkas yang lebih kecil dan kinerja yang lebih cepat. Vue sangat ideal untuk membangun aplikasi satu halaman (single-page applications) yang performa dan skalabilitasnya baik, sehingga membuatnya menjadi pilihan yang populer di kalangan pengembang front-end.
8 |
9 | Panduan Kit Permulaan Vue:
10 |
11 | **Catatan:** - Karena `npm init vue@latest` sudah menggunakan Vite, kami tidak menyertakan panduan Vite untuk Vue.
12 |
13 | - [Buat Aplikasi Vue](./create-vue.md) - Gunakan Create Vue untuk efisien membangun aplikasi modern Permaweb berbasis Vue.js dengan TypeScript dan Vite.
14 |
15 | ::: info Kendala Aplikasi Permaweb
16 |
17 | - Aplikasi 100% front-end (Tanpa Backend Server)
18 | - Aplikasi disajikan dari sub-patokan (https://[gateway]/[TX_ID])
19 | :::
--------------------------------------------------------------------------------
/docs/src/id/references/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: id
3 | ---
4 |
5 | # Referensi
--------------------------------------------------------------------------------
/docs/src/images/ardrive-manifests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/ardrive-manifests.png
--------------------------------------------------------------------------------
/docs/src/images/ardrive-pst.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/ardrive-pst.png
--------------------------------------------------------------------------------
/docs/src/images/arweaveapp-manifest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/arweaveapp-manifest.png
--------------------------------------------------------------------------------
/docs/src/images/arweaveapp-tags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/arweaveapp-tags.png
--------------------------------------------------------------------------------
/docs/src/images/exm-create-token.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/exm-create-token.png
--------------------------------------------------------------------------------
/docs/src/images/exm-lazy-evaluation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/exm-lazy-evaluation.png
--------------------------------------------------------------------------------
/docs/src/images/exm-serverless-functions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/exm-serverless-functions.png
--------------------------------------------------------------------------------
/docs/src/images/exm-sign-in-options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/exm-sign-in-options.png
--------------------------------------------------------------------------------
/docs/src/images/exm-verifiable-computing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/exm-verifiable-computing.png
--------------------------------------------------------------------------------
/docs/src/images/provenace-toolkit-layout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/provenace-toolkit-layout.png
--------------------------------------------------------------------------------
/docs/src/images/pst-deployment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/twilson63/permaweb-cookbook/7fb2276b0cc823f19830662ca7690f452a22aae4/docs/src/images/pst-deployment.png
--------------------------------------------------------------------------------
/docs/src/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | onboarding: true
3 | ---
4 |
5 | # Cooking with the Permaweb
6 |
7 | The Permaweb Cookbook is a developer resource that provides the essential concepts and references for buiding applications on the Permaweb. Each concept and reference will focus on specific aspects of the Permaweb development ecosystem while providing additional details and usage examples.
8 |
9 | ## Developers
10 |
11 | Welcome to the Arweave development community, where the past is forever etched in the blockchain and the future is full of endless possibilities. Let's build the decentralized web together!
12 |
13 | [Read More](getting-started/welcome.md)
14 |
15 | ## Contributing
16 |
17 | The Cookbook is designed in a way that makes it easy for new Permaweb developers to contribute. Even if you don't know how to do something, contributing to the cookbook is a great way to learn!
18 |
19 | Check out all open issues here. Contribution guidelines here. if you find the cookbook is missing a concept, guide or reference, please add an issue.
20 |
21 | [Read More](getting-started/contributing.md)
22 |
23 | ## How to Read the Cookbook
24 |
25 | The Permaweb Cookbook is split into different sections, each aimed at a different goal.
26 |
27 | | Section | Description |
28 | | ------------- | ----------------------------------------------------------------------------------- |
29 | | Core Concepts | Building blocks of the Permaweb that are good to know for development |
30 | | Guides | Snack-sized guides about different tools for development |
31 | | References | References to commonly needed code snippets |
32 | | Starter Kits | Front-end Framework Starters to get you started building on the Permaweb in no time |
33 |
34 | ## Quick Starts
35 |
36 | These are small guides to help developers from every experience level to ship code the the permaweb.
37 |
38 | - [Hello World (No Code)](getting-started/quick-starts/hw-no-code.md)
39 |
--------------------------------------------------------------------------------
/docs/src/kits/README.md:
--------------------------------------------------------------------------------
1 | # Starter Kits
2 |
3 | Starter kits are boiler plate repositories for specific frameworks configured and ready to go, to build on the permaweb.
4 |
5 | - [React](./react/index.md)
6 | - [Svelte](./svelte/index.md)
7 | - [Vue](./vue/index.md)
8 |
--------------------------------------------------------------------------------
/docs/src/kits/react/index.md:
--------------------------------------------------------------------------------
1 | # React Starter Kits
2 |
3 | React is a popular library used for building user interfaces. Alongside other popular
4 | tools such as create-react-app, a React project can be compiled into a bundle. This bundle
5 | can be uploaded as a transaction to the permaweb where it will serve as a single page application.
6 |
7 | React Starter Kit Guides:
8 |
9 | * [Vite](./turbo.md) - React + Vite, publish with permaweb-deploy
10 | * [Create React App](./create-react-app.md) - utilize Create React App to build a React permaweb app
11 |
12 |
13 |
14 | ::: info Permaweb Application Constraints
15 | * 100% Front-end application (No Server-Side Backend)
16 | * Applications are served from a sub-path (https://[gateway]/[TX_ID])
17 | :::
18 |
--------------------------------------------------------------------------------
/docs/src/kits/svelte/index.md:
--------------------------------------------------------------------------------
1 | # Svelte Starter Kits
2 |
3 | Svelte is a framework that compiles to a JavaScript bundle and in the process removes the framework from the distribution of the app. This results in a much smaller footprint than other frameworks. Svelte is the perfect framework for Permaweb Applications. A Permaweb Application is built on the principles of a Single Page Application, but lives on the Arweave network and is distributed by Permaweb gateways.
4 |
5 | Svelte Starter Kit Guides:
6 |
7 | * [Minimal](./minimal.md) - the minimum required to build a svelte permaweb app
8 | * [Vite](./vite.md) - Svelte, Typescript and Vite
9 |
10 | ::: info Permaweb Application Constraints
11 | * 100% Front-end application (No Server-Side Backend)
12 | * Applications are served from a sub-path (https://[gateway]/[TX_ID])
13 | :::
14 |
--------------------------------------------------------------------------------
/docs/src/kits/vue/index.md:
--------------------------------------------------------------------------------
1 | # Vue Starter Kits
2 |
3 | Vue.js is a progressive JavaScript framework that allows building user interfaces. Unlike other frameworks, it compiles the template into JavaScript during runtime, resulting in a smaller file size and faster performance. Vue is ideal for building performant and scalable single-page applications, making it a popular choice among front-end developers.
4 |
5 | Vue Starter Kit Guides:
6 |
7 | **Note:** - Since `npm init vue@latest`alredy uses vite, we have not included a vite guide for Vue.
8 |
9 | - [Create Vue App](./create-vue.md) - Use Create Vue to efficiently build a Vue.js-based with TypeScript and Vite modern permaweb application
10 |
11 | ::: info Permaweb Application Constraints
12 |
13 | - 100% Front-end application (No Server-Side Backend)
14 | - Applications are served from a sub-path (https://[gateway]/[TX_ID])
15 | :::
16 |
--------------------------------------------------------------------------------
/docs/src/legacy/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Permaweb Cookbook - Legacy
3 | ---
4 | # Legacy
5 |
6 | The following concepts and guides have been deprecated.
7 |
8 | - Concepts
9 | - [Smartweave](../concepts/smartweave.md)
10 | - Guides
11 | - [Smartweave](../guides/smartweave/atomic-assets/index.md)
12 |
--------------------------------------------------------------------------------
/docs/src/references/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Permaweb Cookbook - References
3 | ---
4 |
5 | # References
6 |
7 | References for learning in depth about various topics like Bundling, GraphQL, and HTTP APIs.
8 |
9 | - [Bundling](bundling.md)
10 | - [GraphQL](gql.md)
11 | - [HTTP API](http-api)
12 |
13 | > Do you think a permaweb guide is missing? Create a issue at [Github](https://github.com/twilson63/permaweb-cookbook/issues) or consider [contributing](../getting-started/contributing.md)
14 |
--------------------------------------------------------------------------------
/docs/src/zh/concepts/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 | # 核心概念
5 |
6 | Arweave和永久网络(permaweb)的基础知识。
7 |
8 | - [发布交易](post-transactions.md)
9 | - [元数据(标签)](tags.md)
10 | - [查询](queryTransactions.md)
11 | - [获取数据](/guides/http-api.md)
12 | - [交易类型](bundles.md)
13 | - [捆绑数据](bundles.md)
14 | - [路径清单](manifests.md)
15 | - [钱包和密钥](keyfiles-and-wallets.md)
16 | - [永久网络](permaweb.md)
17 | - [永久网络应用](permawebApplications.md)
18 | - [网关服务](gateways.md)
19 | - [捆绑服务](bundlers.md)
20 | - [SmartWeave](smartweave.md)
21 | - [Arweave名称系统(ArNS)](arns.md)
22 | - [原子代币](atomic-tokens.md)
23 | - [利润分享代币(PSTs)](psts.md)
24 |
25 | > 您认为永久网络的核心概念还缺少什么吗?请在[GitHub](https://github.com/twilson63/permaweb-cookbook/issues)上创建一个问题,或考虑[参与贡献](../getting-started/contributing.md)。
--------------------------------------------------------------------------------
/docs/src/zh/concepts/arns.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 | # ArNS - Arweave命名系统
5 | ## 概述
6 | Arweave命名系统(ArNS)是建立在Permaweb上由Smartweave所驱动的电话簿。
7 |
8 | 它是一个去中心化且抗审查的命名系统,由AR.IO Gateways驱动,用于将易读用户名连接到PermaWeb的应用程序、页面和数据。
9 |
10 | 该系统的工作原理类似于传统的DNS,用户可以在注册表中购买名称,DNS名称服务器将这些名称解析为IP地址。
11 |
12 | 通过ArNS,注册表是去中心化的、永久的,并存储在Arweave(使用Smartweave)上,每个AR.IO网关充当缓存和名称解析器。用户可以在ArNS注册表中注册一个名称,例如"my-name",并设置一个指针指向任何Arweave交易ID。AR.IO网关将将该名称解析为其自己的子域,例如https://laserilla.arweave.net ,并将所有请求代理到关联的Arweave交易ID。每个注册的名称也可以与之关联的下层名称,每个下层名称指向一个Arweave交易ID,例如https://v1_laserilla.arweave.net ,给其所有者提供更多的灵活性和控制权。
13 |
14 | ## ArNS注册表
15 |
16 |
17 | ArNS使用Smartweave协议来管理其名称记录。每个记录或名称由用户租用并与ANT代币绑定。您可以将多个ArNS名称注册到单个ANT中,但不能将多个ANT注册到单个ArNS名称——网关将无法确定路由ID的指向位置。
18 |
19 | ArNS名称最多可以包含32个字符,包括数字[0-9]、字母[a-z]和破折号[-]。破折号不能是尾随破折号,例如-myname。
20 |
21 | ## ANTs(Arweave Name Tokens)
22 |
23 | ANTs是ArNS生态系统的重要组成部分,它们是拥有ArNS名称的实际关键。当您将ArNS名称注册到ANT时,ANT就成为该名称的传输方式。ArNS注册表不在乎谁拥有ANT,它只知道ANT所属的名称。
24 |
25 | 在ANT中,您可以构建出任何所需的功能,范围包括ArNS注册表批准的源代码交易列表。这些功能可以包括NFT、PST、DAO或完整的应用程序。
26 |
27 | ## 下层名称(Under_Names)
28 |
29 | 下层名称是由您的ANT(Arweave Name Token)持有和管理的记录。即使不拥有ArNS名称,您也可以创建和管理这些记录,并在将ANT发送给新的所有者时进行转移。同样,如果您的ArNS名称到期,并将您的ANT注册到新的ArNS名称上,您的所有下层名称将保持不变。
30 |
31 | 示例:您拥有oldName.arweave.net。
32 |
33 | 然后:您创建了下层名称"my" - my_oldName.arweave.net。
34 |
35 | 然后:oldName.arweave.net到期了,并且您将newName.arweave.net注册到了您的ANT上。
36 |
37 | 现在:my_下层名称可以在newName上访问 - my_newName.arweave.net。
38 |
39 | 以下是ANT合约状态的示例:
40 |
41 | ```json
42 | {
43 | balances:{ QGWqtJdLLgm2ehFWiiPzMaoFLD50CnGuzZIPEdoDRGQ : 1 },
44 | controller: "QGWqtJdLLgm2ehFWiiPzMaoFLD50CnGuzZIPEdoDRGQ",
45 | evolve: null,
46 | name: "ArDrive OG Logo",
47 | owner: "QGWqtJdLLgm2ehFWiiPzMaoFLD50CnGuzZIPEdoDRGQ",
48 | records:{
49 | @:{ transactionId: "xWQ7UmbP0ZHDY7OLCxJsuPCN3wSUk0jCTJvOG1etCRo" },
50 | undername1:{ transactionId: "usOLUmbP0ZHDY7OLCxJsuPCN3wSUk0jkdlvOG1etCRo" }
51 | },
52 | ticker:"ANT-ARDRIVE-OG-LOGO"
53 | }
54 | ```
55 | 基本的"@"记录是ANT的初始路由ID。如果您将'my-name'注册到此ANT,并尝试通过my-name.arweave.net访问它,您将被重定向到@记录的transactionId。
56 |
57 | 如果您尝试访问undername1_my-name.arweave.net,您将得到'undername1'的transactionId。
58 |
59 | 理论上,ANT拥有不受限制的undernames数量。然而,将服务多少个取决于使用的ArNS名称的层级。
60 |
--------------------------------------------------------------------------------
/docs/src/zh/concepts/atomic-tokens.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 | # 原子代币概念和原则
5 |
6 | 
7 |
8 | 原子代币是一个永久标识符,用于引用Permaweb上的数据和SmartWeave合约。
9 |
10 | ## 规范
11 |
12 | 数据必须存储在arweave网络上,并可通过交易标识符(TxId)引用。
13 |
14 | 合约必须实现一个表示原子代币所有权的“balances”对象。
15 |
16 | 合约必须实现一个“transfer”函数,接受以下参数:
17 | - target {钱包地址或合约}
18 | - qty {数量}
19 |
20 | > 转移函数应将所有权从调用者转移到目标。
21 |
22 | ## 选项
23 |
24 | _这些是可以使原子代币在Permaweb上可发现和可交易的实现选项_
25 |
26 | [Verto Flex](https://github.com/useverto/flex) - Flex库允许您的原子代币在无需信任交易所的情况下进行出售或购买。
27 |
28 | [发现性标签 - ANS 110](https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-110.md) - 这些附加标签可以帮助Permaweb应用程序和服务发现您的令牌。
29 |
30 | [查看指南](../guides/atomic-tokens/intro.md)
31 |
--------------------------------------------------------------------------------
/docs/src/zh/concepts/bundlers.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 |
5 | # 打包服务
6 |
7 | ---
8 |
9 | 通过打包服务,用户可以将自己的数据交易发布到打包服务器上,将其与其他用户的交易一同"打包",并作为单个交易被加入到新的 Arweave 区块中。
10 |
11 | ### 发布到打包服务
12 |
13 | ---
14 |
15 | 您可以在[此处](/guides/posting-transactions/irys.md)了解如何将您的交易发布到打包服务。
16 |
17 | ### 什么是打包?
18 |
19 | ---
20 |
21 | 关于交易打包及优点的描述可以在[此处](/concepts/bundles.md)找到。
22 |
23 | ### 什么是打包节点?
24 |
25 | ---
26 |
27 | 打包节点是负责接受用户的交易或数据项目,将它们打包并发布到 Arweave 网络的节点(并保证使用特定的交易 ID 上传)。
28 |
29 | 打包服务的先驱和最大规模的服务提供者是[irys.xyz](https://irys.xyz)Irys 节点运行以下组件:
30 |
31 | - 一个 NGINX 反向代理
32 | - HTTP API 进程
33 | - 一个 Redis 缓存
34 | - 一个 SQL(Postgres)数据库
35 | - 工作进程
36 |
37 | 这些组件确保数据在上传到 Arweave 之前得到持久化。
38 |
39 | ### 支持多种货币
40 |
41 | ---
42 |
43 | 打包服务的一个关键特性是,它们支付基本的 Arweave 交易费用(使用 AR 代币),也可以选择其他代币支付储费用。这是其他链为其用户启用 Arweave 永久存储的主要入口点。
44 |
--------------------------------------------------------------------------------
/docs/src/zh/concepts/bundles.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 |
5 | # 交易捆绑/交易打包(Transaction Bundles)
6 |
7 | ### 什么是捆绑?
8 |
9 | ---
10 |
11 | 交易捆绑是一种特殊类型的 Arweave 交易。它可以将多个其他交易和/或数据项捆绑在其中。由于交易捆绑包含许多嵌套交易,它们是 Arweave 能够扩展到每秒数千个交易的关键。
12 |
13 | 用户将交易提交给捆绑服务器,例如[irys.xyz](https://irys.xyz),该服务将它们与其他交易组合成一个'bundle'(捆绑),然后将其发布到网络上。
14 |
15 | ### 捆绑如何帮助 Arweave?
16 |
17 | ---
18 |
19 | #### 可用性
20 |
21 | 捆绑服务保证捆绑的交易可靠地发布到 Arweave 而不会丢失。
22 |
23 | 捆绑交易的交易 ID 会立即可用,这意味着数据可以立即访问,就好像它已经在 Arweave 网络上一样。
24 |
25 | #### 可靠性
26 |
27 | 由于网络活动频繁等原因,发布到 Arweave 的交易有时可能无法确认(导致交易丢失)。在这些情况下,交易可能变成**孤立交易**,即被卡在内存池中并最终被删除。
28 |
29 | 捆绑解决了这个问题,它持续不断地尝试将捆绑的数据发布到 Arweave,以确保其不会失败或被卡在内存池中。
30 |
31 | #### 可扩展性
32 |
33 | 捆绑可以存储多达 2256笔交易,每笔交易都作为单笔交易在 Arweave 上结算。这使得 Arweave 的区块空间能够支持几乎任何用例。
34 |
35 | #### 灵活性
36 |
37 | 由于捆绑由构建在 Arweave 之上的捆绑服务处理,所以它可以使用不同的货币进行存储付费。[irys.xyz](https://irys.xyz)支持使用多种代币(如 ETH、MATIC 和 SOL)支付将数据上传到 Arweave。
38 |
39 | ### 什么是嵌套捆绑?
40 |
41 | ---
42 |
43 | 捆绑可以包含用于上传到 Arweave 的数据项,而这些数据项本身也可以是一个捆绑。
44 |
45 | 这意味着可以上传捆绑的捆绑,或者换句话说,**嵌套捆绑**。
46 |
47 | 嵌套捆绑在理论上没有嵌套深度的限制,这意味着交易吞吐量可以大大增加。
48 |
49 | 当您有不同的捆绑数据组,您希望保证这些数据组同时上传到 Arweave,嵌套捆绑可能会有用。
50 |
51 | 来源和进一步阅读:
52 |
53 | [Irys Docs](https://docs.irys.xyz)
54 |
55 | [ANS-104 Standard](https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-104.md)
56 |
--------------------------------------------------------------------------------
/docs/src/zh/concepts/gateways.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 | # 网关(Gateways)
5 |
6 | ---
7 |
8 | 上传到Arweave网络(或[永久网](https://cookbook.arweave.dev/concepts/permaweb.html))的数据并不是立即可用的。
9 |
10 | ### 什么是网关?
11 |
12 | 网关也可被称为“永久网的前门”。它们是Arweave和用户之间的接口,使得从您的网页浏览器中轻松访问数据或使用永久网应用变得容易。
13 |
14 | 例如,访问存储在Arweave上的HTML文件将在您的浏览器中显示为一个网页。查看图片、下载文件、查看JSON数据或任何其他存储在Arweave上的文件也是如此。这使得与永久网的交互非常类似于使用传统的网页。
15 |
16 | ### 网关的其他作用
17 |
18 | 除了为用户提供访问数据的服务外,网关还提供其他服务,例如:
19 |
20 | - 缓存经常访问的数据和交易
21 | - 对交易进行索引和查询(通过Arweave标签和GraphQL接口)
22 | - 在整个Arweave网络中播种交易
23 | - 内容审查(通过内容策略选择提供或不提供的数据)
24 |
25 | ### 网关和Arweave协议
26 |
27 | 虽然网关在允许内容在Arweave上被访问方面起着重要作用,但它们**不**是核心协议的一部分。
28 |
29 | 这意味着托管和运行网关与运行保护Arweave网络的节点是分开的(尽管通常一起运行)。
30 |
31 | 由于网关不是核心协议的一部分,因此没有内置的激励机制,如挖矿的奖励或激励。这使得网关运营商或外部服务能够选择如何构建他们的激励系统,从而实现更加分散和民主的模式。甚至个别应用程序可以运行自己的网关,以实现更好的缓存和永久网应用性能。
32 |
33 | 一些受欢迎的网关包括由Arweave团队运营的[arweave.net](https://arweave.net/),以及其他网关如 [arweave.world](https://cookbook.arweave.world/) [arweave.asia](https://cookbook.arweave.asia) [arweave.live](https://arweave.live/)和[g8way.io](https://g8way.io)。然而,通过[AR.IO](https://ar.io/)等团队,网关的运营变得更加简单和易于访问。
34 |
35 | ### 来源和进一步阅读材料
36 |
37 | - [ArWiki](https://arwiki.wiki/#/en/gateways)
38 | - [AR.IO](https://ar.io/)
39 |
--------------------------------------------------------------------------------
/docs/src/zh/concepts/keyfiles-and-wallets.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 | # 钱包和密钥
5 |
6 | ---
7 |
8 | ### Arweave 钱包
9 |
10 | 在 Arweave 上,钱包是用于在区块链上保证一个唯一地址的工具。该地址用于跟踪您的 $AR 余额,并与 Arweave 网络进行交互,例如发送交易或与[SmartWeave 合约](../guides/smartweave/warp/intro.md)进行交互。
11 |
12 | 与大多数区块链一样,在 Arweave 上,钱包的概念可能有一些误导。
13 |
14 | 钱包本身**不持有**任何代币;代币余额存储在区块链上,并与钱包地址关联。相反,钱包持有用于签署交易以发布数据或转移代币的加密的公私钥对。拥有该钱包的所有者(具有访问钱包的**私钥**)是唯一能够为该地址签署交易并访问其资金的人。
15 |
16 | ### 公私钥对和钱包格式
17 |
18 | Arweave 使用 *4096 位* RSA-PSS 密钥对,并以 JWK(JSON Web Keys)格式存储。JWK 格式可用于存储多种类型的加密密钥,而不仅仅是 RSA 密钥对。
19 |
20 | 以下是描述 RSA-PSS 密钥对的 JWK 文件内容。这些值进行了缩写,以防止意外地将它们用作链上交易的发送方或接收方。在存储 RSA-PSS 密钥对时,与 JWK 中的 `n` 关联的值是您钱包的**公钥**,可以安全地共享,而不会损害钱包的安全性。
21 |
22 | ```json
23 | {
24 | "d": "cgeeu66FlfX9wVgZr5AXKlw4MxTlxSuSwMtTR7mqcnoE...",
25 | "dp": "DezP9yvB13s9edjhYz6Dl...",
26 | "dq": "SzAT5DbV7eYOZbBkkh20D...",
27 | "e": "AQAB",
28 | "ext": true,
29 | "kty": "RSA",
30 | "n": "o4FU6y61V1cBLChYgF9O37S4ftUy4newYWLApz4CXlK8...",
31 | "p": "5ht9nFGnpfW76CPW9IEFlw...",
32 | "q": "tedJwzjrsrvk7o1-KELQxw...",
33 | "qi": "zhL9fXSPljaVZ0WYhFGPU..."
34 | }
35 | ```
36 |
37 | 您的**私钥**也存储在 JWK 中,主要存储在与 `d` 关联的值下,但也部分派生自 JWK 中的其他值。**私钥**就像是您钱包的密码,它可以用于创建数字签名(例如用于签署交易)或解密数据。
38 |
39 | 这些 JWK 是实际的 `json` 文件,通过钱包应用程序(如[Arweave.app](https://arweave.app))创建和导出,或使用[arweave-js](https://github.com/ArweaveTeam/arweave-js)通过代码生成。
40 |
41 | 使用钱包应用程序生成密钥对时,您的**私钥**也可以表示为一个助记符**种子短语**,在某些情况下,它可以用作替代方法来签署交易和/或恢复您的钱包。
42 |
43 | ### 钱包安全
44 |
45 | 您的**私钥**必须始终保密,因为它具有将代币从您的地址转移到他人地址的能力。作为开发者,请确保不要在任何公共的 GitHub 存储库中包含您的密钥文件,也不要在任何其他公开位置托管它。
46 |
47 | ### 钱包地址
48 |
49 | 有趣的是,您的钱包地址是由其**公钥**派生的。尽管安全分享您的**公钥**给他人,但 *4096 位*的**公钥**在方便传递时有些太长。为了减少这种开销并使钱包地址更加可读,将**公钥**的 `SHA-256` 哈希进行了`Base64URL`编码,并用作钱包地址。这种安全和确定性地将一个唯一的 43 个字符的钱包地址与钱包的**公钥**关联起来,并提供了一个方便的缩写,任何人只要具有该**公钥**即可验证。
50 |
51 | ### 钱包
52 |
53 | [Arweave.app](https://arweave.app/welcome) - Arweave 网页钱包,用于部署永久数据、安全地将您的账户连接到去中心化的应用程序,并导航 Arweave。
54 |
55 | [ArConnect](https://www.arconnect.io/) - Arweave 钱包浏览器扩展程序
56 |
57 | ### 来源和进一步阅读:
58 | [Arweave 文档](https://docs.arweave.org/developers/server/http-api#key-format)
59 |
60 | [JSON Web Key 格式 (RFC 7517)](https://www.rfc-editor.org/rfc/rfc7517)
--------------------------------------------------------------------------------
/docs/src/zh/concepts/permaweb.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 | # 欢迎来到永久网络(Permaweb)
5 |
6 | 永久网络类似于互联网,但是它是永久存在的。开发者可以在永久网络服务的基础上构建应用和网站,这些应用和网站将永远存在于Arweave上。
7 |
8 | 
9 |
10 | 永久网络的好处:
11 |
12 | 1. 网站和应用是永久存在的,您不必担心它们会消失(即使支持它们的团队离开了)
13 | 2. 应用开发者必须确保每个新版本的应用都增加了价值,否则,何必放弃旧版本呢。
14 | 3. 因为所有的永久网络应用都共享一个存储层Arweave,它们可以访问彼此的数据。
15 | 4. 您的数据由您的钱包拥有,并且可以在应用之间使用。
16 |
17 | ## 传统网络与永久网络的比较
18 |
19 | 
20 |
21 | 要了解更多关于永久网络的信息,请查看[medium文章](https://arweave.medium.com/welcome-to-the-permaweb-ce0e6c73ddfb)。
22 |
--------------------------------------------------------------------------------
/docs/src/zh/concepts/permawebApplications.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 |
5 | # 永久网(permaweb)应用程序
6 |
7 | 永久网(permaweb)应用程序是一种在您的浏览器中运行的网页或 Web 应用程序。使其成为永久网(permaweb)应用程序的是它被部署到 Arweave 并永久保存。即使开发该应用程序的团队不再维护,用户也可以放心,永久网(permaweb)应用程序仍然在线并可用。永久网(permaweb)应用程序的巨大优势在于它们将数据保存在 Arweave 上,这意味着可以轻松将其导入到其他可能改善您当前使用的应用程序的应用程序中。
8 |
9 | ## 什么是永久网(permaweb)?
10 |
11 | ::: 信息
12 | 深入了解永久网(permaweb)的详细信息,请参阅[永久网(permaweb)](./permaweb.md)这篇文章
13 | :::
14 |
15 | 永久网(permaweb)是建立在[Arweave 永久网(permaweb)服务](./permaweb.md)之上的站点、应用程序和智能合约的集合。永久网(permaweb)的核心部分包括以下内容:
16 |
17 | - 网关服务(如 arweave.net、arweave.live、ar.io)
18 | - 包装服务(如 irys.xyz)
19 | - 序列化服务(如 warp.cc)
20 | - 索引服务(如 goldsky)
21 |
22 |
23 |
24 | ### 网关服务
25 |
26 | 网关服务是连接 Arweave 上的数据和在浏览器中显示数据之间的桥梁。网关通常提供索引服务,同时提供事务数据服务,为查询 Arewave 事务公开 graphQL 链接点。
27 |
28 | ### 包装服务
29 |
30 | 包装服务将交易聚合成事务包,并确保这些事务包直接发布到 Arewave。通过使用像 irys.xyz 这样的捆绑服务,您可以在单个 Arweave 块中发布数十万个事务。
31 |
32 | ### 序列化服务
33 |
34 | 序列化服务使得智能合约能够高性能计算存储在 Arweave 网络上的业务逻辑。
35 |
36 | ### 索引服务
37 |
38 | 索引服务监听 Arweave 上的所有交易,并将它们导入到适用于快速查询的索引数据库中。然后它们公开一个 graphQL 端点,以便永久网(permaweb)应用程序可以对 Arweave 数据进行优化查询。
39 |
40 | 这些服务共同组成了永久网(permaweb)服务层,并赋予开发人员在永久网(permaweb)上构建完全分散的应用程序的能力。
41 |
42 | ## 应用程序开发
43 |
44 | 使用永久网(permaweb)进行应用程序开发与“单页应用程序”开发类似,应用程序由在 Web 浏览器中执行的前端功能组成,并使用 GraphQL(读取/查询)、Irys(写入)和 SmartWeave(分布式计算)组成应用程序的业务逻辑和持久化层。
45 |
46 | 
47 |
48 | 通过利用现代 Web 应用程序框架和[路径清单](./manifests.md)规范,开发人员可以将网站和应用程序部署到永久网(permaweb)上。
49 |
50 | 要了解有关创建和部署永久网(permaweb)应用程序的更多信息,请查看您喜欢的框架中的我们的起始套件:
51 |
52 | - [React](../kits/react/index.md)
53 | - [Svelte](../kits/svelte/index.md)
54 |
55 | ::: 提示 缺少我所用的框架?
56 | 找不到您的框架?为什么不贡献一下呢?[如何对菜谱做贡献](../getting-started/contributing.md)
57 | :::
58 |
--------------------------------------------------------------------------------
/docs/src/zh/concepts/psts.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 | # 概述
5 |
6 | ---
7 |
8 | 利润分享通证(PST)是一种SmartWeaveToken,包括以下结构:
9 |
10 | | 属性 | 类型 |
11 | | ---------- | ---------- |
12 | | 余额 | 对象 |
13 | | 名称 | 字符串 |
14 | | 代号 | 字符串 |
15 | | 转账 | 方法 |
16 | | 余额查询 | 方法 |
17 |
18 | PST通常用于治理一个协议或“利润分享社区”(PSC),类似于DAO。
19 |
20 | ### 如何分发PST?
21 |
22 | ---
23 |
24 | 应用的创始人可以创建一定数量的PST,并根据自己的意愿分发它们,可以保留或出售给投资者以筹集资金。
25 |
26 | 协议可以以PST作为奖励来奖励贡献工作或完成社区任务以激励增长。
27 |
28 | PST也可以在[Permaswap](https://permaswap.network/#/)(目前处于测试网)之间进行交换,开发人员可以使用[Verto Flex](https://github.com/useverto/flex)设置代币交易权限。
29 |
30 | ### 特点
31 |
32 | ---
33 |
34 | PST作为“微股息”起作用。当使用协议时,一定数量的小费被保留下来分配给持有者。小费以 $AR 的形式支付,而不是PST的货币。这在正在开发的应用程序和Arweave之间创造了一种特殊的关系。
35 |
36 | ### 好处
37 |
38 | ---
39 |
40 | - 为开发人员提供了一种灵活的方式来运行协议,并根据需要分发“所有权”
41 | - PST可以用作协议工作或社区任务的支付方式
42 | - 鼓励创始人增加网络使用量,因为它直接与收入相关
43 | - 持有者获得内在价值(奖励 $AR,而不是更多的“股份”)
44 |
45 | ### 示例PST:ARDRIVE Token
46 |
47 | ---
48 |
49 | ArDrive是一个永久网络应用程序,利用了他们恰如其名的PST,即ARDRIVE。
50 |
51 | 当有人通过ArDrive支付 $AR 来上传数据时,15% 的社区费用会按照随机加权的方法分配给一个令牌持有者。
52 |
53 | 
54 |
55 | 用户上传数据 -> 一个 ARDRIVE 代币持有者收到 $AR -> ARDRIVE 代币持有者可以使用这个 $AR 来上传文件 -> 周期重复。希望这给您一个关于您可以实现自己的PST的一个好主意!
56 |
57 | ### 探索PSTs
58 |
59 | ---
60 |
61 | 直接使用ViewBlock和Sonar by Redstone可能是最合适的。只需使用显示PST的链接,以免让人们翻阅查找。
62 |
63 | 您可以使用[ViewBlock](https://viewblock.io/arweave)获得类似于etherscan的体验,查看PST合约,例如[这里](https://viewblock.io/arweave/contract/-8A6RexFkpfWwuyVO98wzSFZh0d6VJuI-buTJvlwOJQ)。
64 |
65 | 另一个选择是Sonar,这是一个由[RedStone Finance](https://sonar.redstone.tools/#/app/contracts)构建的Arweave智能合约浏览器。在这里查看相同的合约[here](https://sonar.warp.cc/?#/app/contract/-8A6RexFkpfWwuyVO98wzSFZh0d6VJuI-buTJvlwOJQ)。
66 |
67 | > 一些社区成员已经在讨论将PST称为“永久网络服务通证”。在PST方面还有很多探索要做 → 加入[此处](https://discord.com/channels/999377270701564065/999377270701564068/1055569446481178734)的讨论(Discord)。
--------------------------------------------------------------------------------
/docs/src/zh/concepts/vouch.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 | # Vouch(背书)
5 | ## 概述
6 | #### Vouch 协议
7 | Arweave 引入了 ANS-109 Vouch(身份声明)的概念。它是一种使用特定的交易格式和一些标签的标准,允许 permaweb 上的任何人为任何 Arweave 地址的身份和人性提供“背书”。
8 |
9 | 将 ANS-109 这样的标准添加到 permaweb 中将有助于最小化 Sybil 攻击和恶意行为者,使 permaweb 用户体验更加安全。
10 |
11 | #### VouchDAO
12 | VouchDAO 是一个由社区领导的、建立在 Vouch 标准之上的分散验证层。开发者创建背书服务,VouchDAO 社区的成员投票决定哪些验证服务值得信赖。
13 |
14 | 一旦创建了新的服务,其地址将在 [VouchDAO community.xyz](https://community.xyz/#_z0ch80z_daDUFqC9jHjfOL8nekJcok4ZRkE_UesYsk) 接口上进行投票。如果投票通过,它将被添加为经过验证的背书。
15 |
16 |
17 |
18 | ## 工作原理
19 | 开发者可以创建不同的 Vouch 服务,根据给定的一组要求对用户的 Arweave 钱包进行证明。当前的一个例子是 Twitter 服务,这是第一个背书服务,迄今已为超过180个 Arweave 地址提供了背书。
20 |
21 | VouchDAO 智能合约状态具有一个 `vouched` 属性。每当用户进行验证时,状态将会更新。`vouched` 对象以以下格式存储一系列接受背书的地址:
22 | ```
23 | VOUCH_USER_ADDRESS:[
24 | {
25 | service:"SERVICE_ADDRESS_1"
26 | transaction:"TX_ID"
27 | },
28 | {
29 | service:"SERVICE_ADDRESS_2"
30 | transaction:"TX_ID"
31 | }
32 | ]
33 | ```
34 |
35 | 获得验证的用户将在他们的钱包中收到 ANS-109 令牌,表示该钱包已经由该服务进行了背书。
36 |
37 | ## ANS-109 交易格式
38 | | 标签名 | _是否可选_ | 标签值 |
39 | |---|---|---|
40 | |App-Name|否|`Vouch`|
41 | |Vouch-For|否|正在此交易中为其提供背书的 Arweave `address`|
42 | |App-Version|是|`0.1`|
43 | |Verification-Method|是|验证此人的身份的方法。例如 - `Twitter`/`In-Person`/`Gmail`/`Facebook`|
44 | |User-Identifier|是|基于验证方法的用户标识符。例如 - `abhav@arweave.org`|
45 |
46 | ## 资源
47 | * [VouchDAO](https://vouch-dao.arweave.dev)
48 | * [VouchDAO 合约](https://sonar.warp.cc/?#/app/contract/_z0ch80z_daDUFqC9jHjfOL8nekJcok4ZRkE_UesYsk)
--------------------------------------------------------------------------------
/docs/src/zh/getting-started/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 | # Permaweb中的烹饪
5 |
6 | Permaweb Cookbook 是一个开发者资源,提供了在长久网络(Permaweb)上构建应用所需的基本概念和参考资料。每个概念和参考资料都将重点介绍 Permaweb 开发生态系统的特定方面,并提供额外的细节和用法示例。
7 |
8 | ## 开发者们
9 |
10 | 欢迎来到 Arweave 开发社区,在这里历史会永远镌刻在区块链中,未来充满了无限可能。让我们一起构建去中心化的网络!
11 |
12 | [了解更多](welcome.md)
13 |
14 | ## 贡献
15 |
16 | Cookbook 使新进入 Permaweb 的开发者可以更轻松的构建应用并做出贡献。即使您不知道如何做某件事,贡献Cookbook 也是学习的好方法!
17 |
18 | 在此查看所有开放问题。在此查看贡献指南。如果您发现烹饪书缺少某个概念、指南或参考资料,请添加一个问题。
19 |
20 | [了解更多](contributing.md)
21 |
22 |
23 | ## 如何阅读烹饪书
24 |
25 | Permaweb Cookbook分为不同的部分,每个部分旨在实现不同的目标。
26 |
27 | | 部分 | 描述 |
28 | | ---- | ---- |
29 | | 核心概念 | Permaweb的构建块,对开发有益的基本概念 |
30 | | 指南 | 关于不同开发工具的简单指南 |
31 | | 参考 | 常用代码片段参考 |
32 | | 入门套件 | 前端框架入门套件,可帮助您在长久网络上快速开始构建 |
33 |
34 | ## 快速开始
35 |
36 | 这些是小型指南,可以帮助开发者从任何经验水平上构建代码到 Permaweb 中。
37 |
38 | - [Hello World (NodeJS)](quick-starts/hw-nodejs.md)
39 |
--------------------------------------------------------------------------------
/docs/src/zh/getting-started/contributing.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 | # 贡献流程
5 |
6 | 我们欢迎社区中的任何人为Permaweb Cookbook做出贡献,作为社区成员,我们希望有一个高质量的参考指南,其中包含了一些小块的信息片段。以下是如何为这个项目做出贡献的流程。
7 |
8 | ## 需要了解什么?
9 |
10 | * Git和Github - 将内容发布到github.com。
11 | * Markdown - Markdown是一种基于文本的标记语言,可以转换为HTML。
12 | * Arweave和Permaweb - 对Permaweb有一些了解。
13 |
14 | ## 贡献步骤
15 |
16 |
17 | 
18 |
19 | ## 需要帮助吗?
20 |
21 | 加入我们的[Discord频道](https://discord.gg/haCAX3shxF)并发布一条消息。
22 |
23 | ## 提交工作
24 |
25 | 我们在这个仓库中使用[约定式提交](https://www.conventionalcommits.org/en/v1.0.0/)来提交工作。
26 |
27 | 进行贡献的一般流程:
28 |
29 | 1. 在GitHub上Fork这个仓库
30 | 2. 将项目克隆到自己的机器上
31 | 3. 将更改提交到自己的分支
32 | 4. 将你的工作推送到你的Fork
33 | 5. 提交一个Pull请求以便我们审查你的更改
34 |
35 | **注意**:在发起pull请求之前,一定要合并"upstream"最新的内容!
36 |
37 | ## 风格
38 |
39 | 以下是一些建议的语气和风格:
40 |
41 | ::: 提示
42 | 在编写它们时,我对每个部分适合的语气有了一个感觉。
43 | 核心概念应该比较像课本,是中立、客观的。"这就是Arweave的工作原理"
44 | 对于指南,我认为使用更个人化的语言是可以的。用"你"来称呼读者,并以合作的语音说"接下来我们将来看一下..."
45 | 这可能只是个人偏好,但总的来说,我觉得这种语气在长形式指南中更具支持性和易接近性。
46 | 确实,这是其他生态系统中大多数流行教程所使用的声音。
47 | 对于资源,我认为它与核心概念声音相同,更偏向简洁。
48 |
49 | dmac
50 | :::
51 |
52 |
53 | ::: 提示
54 | 概念和参考数据应该具有更严谨科学的语气,指南应该是一种支持性甚至幽默的语气。长形式的内容需要吸引读者,不要让他们走神。
55 |
56 | Arch_Druid
57 | :::
58 |
59 | ## 关于贡献的更多信息,请查阅仓库的风格指南
60 |
61 | [CONTRIBUTING](https://github.com/twilson63/permaweb-cookbook/blob/main/CONTRIBUTING.md)
62 |
63 |
--------------------------------------------------------------------------------
/docs/src/zh/getting-started/quick-starts/hw-cli.md:
--------------------------------------------------------------------------------
1 | ---
2 | locale: zh
3 | ---
4 |
5 | # Hello World(CLI)
6 |
7 | 本指南将引导您通过命令行界面(CLI)以最简单的方式将数据上传到永久网络(permaweb)。
8 |
9 | ## 要求
10 |
11 | - [NodeJS](https://nodejs.org) LTS 或更高版本
12 |
13 | ## 描述
14 |
15 | 使用终端/控制台窗口创建一个名为 `hw-permaweb-1` 的新文件夹。
16 |
17 | ## 设置
18 |
19 | ```sh
20 | cd hw-permaweb-1
21 | npm init -y
22 | npm install arweave @irys/sdk
23 | ```
24 |
25 | ## 生成钱包
26 |
27 | ```sh
28 | node -e "require('arweave').init({}).wallets.generate().then(JSON.stringify).then(console.log.bind(console))" > wallet.json
29 | ```
30 |
31 | ## 创建网页
32 |
33 | ```sh
34 | echo "