diff --git a/learn/architecture.md b/learn/architecture.md index d6e8341..a993915 100644 --- a/learn/architecture.md +++ b/learn/architecture.md @@ -1,123 +1,80 @@ -# Description and architecture +# Descripción y Arquitectura -Codex is building a durable data storage engine that is fully decentralised, providing corruption and censorship resistance to web3 applications. It innately protects network participants by giving hosts plausible deniability over the data they store, and clients provable durability guarantees—up to 99.99%—while remaining storage and bandwidth efficient. +Codex está construyendo un motor de almacenamiento de datos duradero que es completamente descentralizado, proporcionando resistencia a la corrupción y a la censura para aplicaciones web3. Protege inherentemente a los participantes de la red al otorgar a los hosts una negación plausible sobre los datos que almacenan, y a los clientes garantías de durabilidad comprobables (hasta el 99.99%), a la vez manteniendo la eficacia en almacenamiento y ancho de banda. -These four key features combine to differentiate Codex from existing projects in the decentralised storage niche: +Estas cuatro características clave se combinan para diferenciar a Codex de los proyectos existentes en el nicho del almacenamiento descentralizado: -- **Erasure coding:** Provides efficient data redundancy, which increases data durability guarantees. +* **Codificación de borrado (Erasure coding):** Proporciona redundancia de datos eficiente, lo que aumenta las garantías de durabilidad de los datos. +* **Prueba de recuperabilidad basada en ZK (ZK-based proof-of-retrievability):** Para garantizar la durabilidad de los datos de forma ligera. +* **Mecanismo de reparación perezosa (Lazy repair mechanism):** Para una reconstrucción eficiente de los datos y prevención de la pérdida. +* **Incentivación:** Para fomentar un comportamiento racional, una participación generalizada en la red y la provisión eficiente de recursos de red finitos. -- **ZK-based proof-of-retrievability:** For lightweight data durability assurances. +Descentralización incentivada -- **Lazy repair mechanism:** For efficient data reconstruction and loss prevention. +Los mecanismos de incentivación son una de las piezas clave que faltan en las redes tradicionales de intercambio de archivos. Codex cree que una estructura de incentivos sólida basada en el mercado garantizará una amplia participación en todos los tipos de nodos que se detallan a continuación. -- **Incentivization:** To encourage rational behaviour, widespread network participation, and the efficient provision of finite network resources. +El desarrollo de una estructura de incentivos adecuada está impulsado por los siguientes objetivos: +* Oferta y demanda para fomentar un uso óptimo de los recursos de la red. +* Aumentar la participación permitiendo a los nodos utilizar sus ventajas competitivas para maximizar las ganancias. +* Prevenir el spam y desalentar la participación maliciosa. -### Incentivized decentralisation +Aunque aún no se ha finalizado, la estructura de incentivos de Codex involucrará un mercado de participantes que desean almacenar datos, y aquellos que proporcionan almacenamiento publicando garantías (collateral), y estos últimos pujando por contratos de almacenamiento abiertos. Esta estructura tiene como objetivo garantizar que los incentivos de los participantes se alineen, lo que resulta en que Codex funcione según lo previsto. -Incentivization mechanisms are one of the key pieces missing from traditional file-sharing networks. Codex believes that a robust marketplace-based incentive structure will ensure wide participation across the node types detailed below. +Arquitectura de la red -The development of an adequate incentive structure is driven by the following goals: +Codex se compone de múltiples tipos de nodos, cada uno de los cuales desempeña un papel diferente en el funcionamiento de la red. Del mismo modo, las demandas de hardware para cada tipo de nodo varían, lo que permite participar a aquellos que operan dispositivos con recursos restringidos. -- Supply and demand to encourage optimum network resource usage. +Nodos de almacenamiento -- Increase participation by enabling nodes to utilise their competitive advantages to maximise profits. +Como proveedores de almacenamiento confiables a largo plazo de Codex, los nodos de almacenamiento apuestan garantías (collateral) basadas en la garantía publicada en el lado de la solicitud de los contratos, y en el número de espacios que tiene un contrato. Esto está ligado a la durabilidad exigida por el usuario. El no proporcionar pruebas periódicas de posesión de datos resulta en penalizaciones de "slashing" (recorte de la garantía). -- Prevent spam and discourage malicious participation. +Nodo Agregador -Although still to be finalised, the Codex incentive structure will involve a marketplace of participants who want to store data, and those provisioning storage posting collateral, with the latter bidding on open storage contracts. This structure aims to ensure that participants' incentives align, resulting in Codex functioning as intended. +Un método para descargar la codificación de borrado, la generación de pruebas y la agregación de pruebas por parte de un nodo cliente con bajos recursos, actualmente es un Trabajo En Progreso (WIP) y formará parte de la siguiente versión de Codex en el Q2/Q4 del próximo año. +Nodos Cliente -### Network architecture +Los nodos cliente realizan solicitudes para que otros nodos almacenen, encuentren y recuperen datos. La mayor parte de la red Codex estará compuesta por nodos Cliente, y estos participantes pueden también funcionar como nodos de caché para compensar el costo de los recursos de red que consumen. -Codex is composed of multiple node types, each taking a different role in the network's operation. Similarly, the hardware demands for each node type vary, enabling those operating resource-restricted devices to participate. +Cuando un nodo se compromete con un contrato de almacenamiento y un usuario carga datos, la red verificará de forma proactiva que el nodo de almacenamiento esté en línea y que los datos sean recuperables. A continuación, se consulta aleatoriamente a los nodos de almacenamiento para que transmitan pruebas de posesión de datos durante un intervalo que se corresponde con la duración del contrato y las "9s" de garantía de recuperabilidad que ofrece el protocolo. -**Storage nodes** +Si el nodo de almacenamiento envía pruebas no válidas o no las proporciona a tiempo, la red expulsa al nodo de almacenamiento del espacio, y el espacio estará disponible para el primer nodo que genere una prueba válida para ese espacio. -As Codex's long-term reliable storage providers, storage nodes stake collateral based on the collateral posted on the request side of contracts, and the number of slots that a contract has. This is tied to the durability demanded by the user. Failure to provide periodic proof of data possession results in slashing penalties. +Cuando se vuelve a publicar el contrato, parte de la garantía del nodo defectuoso paga las tarifas de ancho de banda del nuevo nodo de almacenamiento. La "codificación de borrado" complementa el esquema de reparación al permitir la reconstrucción de los fragmentos que faltan a partir de los datos de otros espacios dentro del mismo contrato de almacenamiento alojado por nodos de almacenamiento sin fallos. -**Aggregator Node** +Arquitectura del Marketplace -A method for off-loading erasure coding, proof generation and proof aggregation by a client node with low-resources, currently a WIP and will be part of subsequent Codex release Q2/Q4 next year. +El mercado consiste en un contrato inteligente (smart contract) que se implementa "on-chain", y los módulos de compra y venta que forman parte del software del nodo. El módulo de compra es responsable de publicar las solicitudes de almacenamiento en el contrato inteligente. El módulo de venta es su contraparte, que los proveedores de almacenamiento utilizan para determinar qué solicitudes de almacenamiento les interesan. -**Client nodes** +Contrato Inteligente (Smart Contract) -Client nodes make requests for other nodes to store, find, and retrieve data. Most of the Codex network will be Client nodes, and these participants can double as caching nodes to offset the cost of the network resources they consume. +El contrato inteligente facilita la coincidencia entre los proveedores de almacenamiento y los clientes de almacenamiento. Un cliente de almacenamiento puede solicitar una cierta cantidad de almacenamiento durante una cierta duración. Esta solicitud se publica entonces "on-chain", para que los proveedores de almacenamiento puedan verla y decidir si quieren llenar un espacio en la solicitud. -When a node commits to a storage contract and a user uploads data, the network will proactively verify that the storage node is online and that the data is retrievable. Storage nodes are then randomly queried to broadcast proofs of data possession over an interval corresponding to the contract duration and 9's of retrievability guarantee the protocol provides. +Los principales parámetros de una solicitud de almacenamiento son: -If the storage node sends invalid proofs or fails to provide them in time, the network evicts the storage node from the slot, and the slot will become available for the first node that generates a valid proof for that slot. +* La cantidad de bytes de almacenamiento que se solicita +* Un identificador de contenido (CID) de los datos que deben almacenarse +* La duración durante la cual deben almacenarse los datos +* El número de espacios (basado en los parámetros de codificación de borrado) +* Una cantidad de tokens a pagar por el almacenamiento -When the contract is reposted, some of the faulty node's collateral pays for the new storage node's bandwidth fees. Erasure coding complements the repair scheme by allowing the reconstruction of the missing chunks from data in other slots within the same storage contract hosted by faultless storage nodes. +A nivel de protocolo, un cliente de almacenamiento es libre de determinar estos parámetros como mejor le parezca, de modo que pueda elegir un nivel de durabilidad que sea adecuado para los datos, y ajustarse a los precios de almacenamiento cambiantes. Las aplicaciones construidas sobre Codex pueden proporcionar orientación a sus usuarios para elegir los parámetros correctos, de forma análoga a cómo las billeteras de Ethereum ayudan a determinar las tarifas de gas. +El contrato inteligente también comprueba que los proveedores de almacenamiento cumplen sus promesas. Los proveedores de almacenamiento publican garantías (collateral) cuando prometen llenar un espacio de una solicitud de almacenamiento. Se espera que publiquen pruebas de almacenamiento periódicas en el contrato, ya sea directamente o a través de un agregador. Si no lo hacen repetidamente, entonces su garantía puede ser confiscada. Su espacio se concede entonces a otro proveedor de almacenamiento. -![architect](/learn/architecture.png) +El contrato inteligente indica cuándo un determinado proveedor de almacenamiento tiene que proporcionar una prueba de almacenamiento. Esto no se hace en un intervalo de tiempo fijo, sino que se determina estocásticamente para garantizar que no sea posible que un proveedor de almacenamiento prediga cuándo debe proporcionar la siguiente prueba de almacenamiento. -### Marketplace architecture ### +Compra (Purchasing) -The marketplace consists of a smart contract that is deployed on-chain, and the -purchasing and sales modules that are part of the node software. The purchasing -module is responsible for posting storage requests to the smart contract. The -sales module is its counterpart that storage providers use to determine which -storage requests they are interested in. +El módulo de compra en el software del nodo interactúa con el contrato inteligente en nombre del operador del nodo. Publica las solicitudes de almacenamiento y gestiona cualquier otra interacción que se requiera durante la vida útil de la solicitud. Por ejemplo, cuando una solicitud se cancela porque no hay suficientes proveedores de almacenamiento interesados, el módulo de compra puede retirar los tokens que estaban asociados a la solicitud. -#### Smart contract #### +Venta (Sales) -The smart contract facilitates matching between storage providers and storage -clients. A storage client can request a certain amount of storage for a certain -duration. This request is then posted on-chain, so that storage providers can -see it, and decide whether they want to fill a slot in the request. +El módulo de venta es la contraparte del módulo de compra. Supervisa el contrato inteligente para ser notificado de las solicitudes de almacenamiento entrantes. Mantiene una lista de las solicitudes más prometedoras que puede cumplir. Favorecerá aquellas solicitudes que tengan una alta recompensa y una baja garantía (collateral). Tan pronto como encuentre una solicitud adecuada, intentará primero reservar y luego llenar un espacio descargando los datos asociados, creando una prueba de almacenamiento y publicándola en el contrato inteligente. A continuación, seguirá supervisando el contrato inteligente para proporcionarle pruebas de almacenamiento cuando sean necesarias. -The main parameters of a storage request are: -- the amount of bytes of storage that is requested -- a content identifier (CID) of the data that should be stored -- the duration for which the data should be stored -- the number of slots (based on the erasure coding parameters) -- an amount of tokens to pay for the storage +El módulo de venta contiene una estrategia de "mejor esfuerzo" (best effort) para determinar qué solicitudes de almacenamiento le interesan. Con el tiempo, esperamos que surjan estrategias más especializadas para satisfacer las necesidades de, por ejemplo, grandes proveedores frente a proveedores que ejecutan un nodo desde su casa. -At the protocol level a storage client is free to determine these parameters as -it sees fit, so that it can choose a level of durability that is suitable for -the data, and adjust for changing storage prices. Applications built on Codex -can provide guidance to their users for picking the correct parameters, -analogous to how Ethereum wallets help with determining gas fees. +### Libro Blanco ### -The smart contract also checks that storage providers keep their promises. -Storage providers post collateral when they promise to fill a slot of a storage -request. They are expected to post periodic storage proofs to the contract, -either directly or through an aggregator. If they fail to do so repeatedly, then -their collateral can be forfeited. Their slot is then awarded to another storage -provider. - -The smart contract indicates when a certain storage provider has to provide a -storage proof. This is not done on a fixed time interval, but determined -stochastically to ensure that it is not possible for a storage provider to -predict when it should provide the next storage proof. - -#### Purchasing #### - -The purchasing module in the node software interacts with the smart contract on -behalf of the node operator. It posts storage requests, and handles any other -interactions that are required during the lifetime of the request. For instance, -when a request is canceled because there are not enough interested storage -providers, then the purchasing module can withdraw the tokens that were -associated with the request. - -#### Sales #### - -The sales module is the counterpart to the sales module. It monitors the smart -contract to be notified of incoming storage requests. It keeps a list of the -most promising requests that it can fulfill. It will favor those requests that -have a high reward and low collateral. As soon as it finds a suitable request, -it will then try to first reserve and then fill a slot by downloading the -associated data, creating a storage proof, and posting it to the smart contract. -It will then continue to monitor the smart contract to provide it with storage -proofs when they are required. - -The sales module contains a best effort strategy for determining which storage -requests it is interested in. Over time, we expect more specialized strategies -to emerge to cater to the needs of e.g. large providers versus providers that -run a node from their home. - -### Whitepaper ### - -Read the [Codex whitepaper](/learn/whitepaper) +Leer [Codex whitepaper](/learn/whitepaper)