Introducción
Avalanche presenta 3 cadenas de bloques integradas: Cadena de intercambio (X-Chain), Cadena de plataforma (P-Chain) y Cadena de contrato (C-Chain). Las 3 cadenas de bloques están validadas y protegidas por la red principal . La red principal es una subnet especial, y todos los miembros de todas las subnets personalizadas también deben ser miembros de la red principal apostando (staking) al menos 2000 AVAX.
Documentación sobre Avalanche disponible en SenseiNode
Información General sobre Avalanche
¿Qué son las Subnets?
Una subnet, o subred, es un conjunto dinámico de validadores que trabajan juntos para lograr un consenso sobre el estado de un conjunto de cadenas de bloques. Cada cadena de bloques es validada por exactamente una subnet. Una subnet puede validar muchas cadenas de bloques. Un nodo puede ser miembro de muchas subnets.
Una subnet administra su propia membresía y puede requerir que sus validadores constituyentes tengan ciertas propiedades. Esto es muy útil, y exploramos sus ramificaciones con más profundidad a continuación:
La arquitectura de subnet de Avalanche hace que el cumplimiento normativo sea manejable. Como se mencionó anteriormente, una subnet puede requerir validadores para cumplir con un conjunto de requisitos.
Algunos ejemplos de requisitos incluyen:
- Los validadores deben estar ubicados en un país determinado
- Los validadores deben pasar controles KYC/AML
- Los validadores deben tener una licencia determinada
(Para que quede muy claro, los ejemplos anteriores son solo eso: ejemplos. Estos requisitos no se aplican a la red principal de Avalanche).
Soporte para cadenas de bloques
Puede crear una subnet donde solo ciertos validadores predefinidos pueden unirse y crear una subnet privada donde el contenido de las cadenas de bloques sería visible sólo para estos validadores. Esto es ideal para organizaciones interesadas en mantener su información privada. Vea aquí para más información.
Separación de Preocupación
En una red heterogénea de cadenas de bloques, algunos validadores no querrán validar ciertas cadenas de bloques porque simplemente no tienen interés en esas cadenas de bloques. El modelo de subnet permite que los validadores solo se preocupen por las cadenas de bloques que les interesan. Esto reduce la carga de los validadores.
Requisitos específicos de aplicación
Diferentes aplicaciones basadas en blockchain pueden requerir que los validadores tengan ciertas propiedades. Supongamos que hay una aplicación que requiere grandes cantidades de RAM o potencia de CPU. Una subnet podría requerir que los validadores cumplan con ciertos requisitos de hardware para que la aplicación no sufra un bajo rendimiento debido a la lentitud de los validadores.
Máquinas virtuales
Una máquina virtual (VM) define la lógica de nivel de aplicación de una cadena de bloques. En términos técnicos, especifica el estado de la cadena de bloques, la función de transición de estado, las transacciones y la API a través de la cual los usuarios pueden interactuar con la cadena de bloques. Cada blockchain en Avalanche es una instancia de una VM.
Cuando escribe una VM, no necesita preocuparse por la lógica de nivel inferior como la creación de redes, el consenso y la estructura de la cadena de bloques. Avalanche hace esto entre bastidores para que puedas concentrarte en lo que te gustaría construir.
Piense en una máquina virtual como un modelo para una cadena de bloques; puede usar la misma VM para crear muchas cadenas de bloques, cada una de las cuales sigue el mismo conjunto de reglas pero es lógicamente independiente de otras cadenas de bloques.
¿Por qué máquinas virtuales?
Al principio, las redes blockchain tenían una máquina virtual (Virtual Machine - VM) con un conjunto estático y predefinido de funcionalidad. Este diseño rígido y monolítico limitaba las aplicaciones basadas en blockchain que se podían ejecutar en dichas redes.
Las personas que querían aplicaciones descentralizadas personalizadas tenían que crear su propia red blockchain completamente nueva desde cero. Hacerlo requirió una gran cantidad de tiempo y esfuerzo, ofreció una seguridad limitada y, en general, resultó en una cadena de bloques frágil y personalizada que nunca despegó.
Ethereum dio un paso hacia la solución de este problema con contratos inteligentes. Los desarrolladores no necesitaban preocuparse por las redes y el consenso, pero la creación de aplicaciones descentralizadas seguía siendo difícil. La máquina virtual Ethereum tiene un bajo rendimiento e impone restricciones a los desarrolladores de contratos inteligentes. Solidity y los otros pocos lenguajes para escribir contratos inteligentes de Ethereum no son familiares para la mayoría de los programadores.
Avalanche VM (AVM) facilita la definición de una aplicación descentralizada basada en blockchain. En lugar de lenguajes nuevos y limitados como Solidity, los desarrolladores pueden escribir máquinas virtuales en Go (se admitirán otros lenguajes en el futuro).