Die AVA Plattform — Eine Tech Fibel

Ordinemo
avalanche_dach
Published in
7 min readMay 6, 2020

Diese Fibel dient als Grundlage für Entwickler und Systemdesigner, welche daran interessiert sind in die AVA-Community einzutauchen, und informiert über die Einsatzmöglichkeiten von AVA.

Warum AVA?

AVA wurde entwickelt um Anwendungsfälle abzudecken, die vorhandene Plattformen technisch nicht bedienen können, und dies mit einem aufrechtem Versprechen von Dezentralisierung. Wer AVA verwendet, tut dies, um ein Hochdurchlass-System aufbauen zu können, ohne sich aber auf einen Mittelsmann zu verlassen. Mit der Möglichkeit, private Daten vom Rest des AVA Netzwerks zu trennen, während diese weiterhin Bestandteil des gesamten Netzwerks sind, ermöglicht AVA Anwendungsfälle für den Datenschutz, welche andere Plattformen nicht bieten. Mit schnellen Entscheidungszeiten und angemessenen Hardwareanforderungen ist AVA ein Protokoll, welches ein Vielfaches der Daten und der produktiven Ausbeute vorhandener dezentraler Systeme anbieten kann, und das zu geringen Kosten. AVA ist eine “Werte Maschine” (asset engine), die neue Märkte erschaffen, antreiben oder bestehende in ein globales Handels-Rückgrat integrieren kann.

Was ist AVA?

AVA ist die erste Blockchain der nächsten Generation, die Proof of Stake verwendet und den DeFi-Anforderungen entspricht. Dank der fortschrittlichsten Konsens-Technologie — dem Avalanche Protokoll — erreicht AVA einen hohen Durchlass von mehr als 4500 Transaktionen pro Sekunde, eine schnelle Transaktionsentgültigkeit (finality) in weniger als 3 Sekunden und eine beispiellose Dezentralisierung. AVA wurde als Plattform entwickelt und ermöglicht es jedem, private oder öffentliche Subnetze zu erstellen und benutzerdefinierte Ausführungsumgebungen zu erstellen, um jegliche Anforderungen zu erfüllen. Mit der Fähigkeit, digitale Assets zu erstellen und zwischen verschiedenen Chains und Subnetzen zu handeln, erfüllt AVA jegliche Anforderungen, als infrastrukturelles Rückgrat jeglicher Branchen und entwickelt sich zum Internet des Austauschs.

AVA basiert auf den “Snow” Konsensprotokollen, die im Team Rocket-Papier von 2018 beschrieben werden. Diese Protokolle verwenden “random repeated sub-sampling” (zufällige wiederholte Unterabtastungen), um einen extrem schnellen Konsens im gesamten Netzwerk zu erzielen. Diese neue Klasse von Protokollen wurde von einem Team von Doktoranden der Cornell University überprüft und analysiert.

Ihr Fazit:

“Das Protokoll funktioniert!”

Dies war der Startschuss Ende 2018 für AVA Labs, und die Entwicklung der AVA-Plattform.

Wie schlägt sich AVA im Vergleich?

AVA ist eine Verbesserung um eine Größenordnung im Vergleich zu früheren dezentralen Protokollen (und in einigen Fällen sogar um zwei Größenordnungen). Die folgende Tabelle vergleicht AVA mit vorhandenen Technologien:

Avalanche bietet alle Vorteile und keine Nachteile bestehender Protokolle. Es ist sogar widerstandsfähig gegen 51% Angriffe!

AVA Plattform Kernkonzepte

Die Architektur besteht aus vier Kernkonzepten:

1. Konsensprotokolle

Die „Snow“ Konsensprotokolle sind die Grundlagen für AVA. Die Plattform verfügt ab Start über zwei Konsens-Engines:

Avalanche — DAG-optimierter Konsens, der erstmals im Team Rocket-Papier beschrieben wurde. Hoher Durchlass, parallelisierbar, einfach zum “prunen” (beschneiden).

Snowman — Chain-optimierter Konsens, der zuerst vom AVA Labs Team erstellt wurde. Hoher Durchlass, vollständig geordnet, ideal für „Smart Contracts“.

Der Konsens ist von der zugrunde liegenden Datenstruktur getrennt, sodass eine UTXO-basierte oder Account-basierte Snowman-Blockchain erstellt werden kann.

2. Virtual Machines (VMs)

Eine Virtual Machine definiert die Applikations-Logik einer Blockchain. Die VM kann man als Code ansehen, welches auf den Konsensus zurückgreift um eine Datenbank abzubilden. Diese Datenbank kann in Form einer Chain, eines DAG, Logfiles oder einer anderen Datenstrukturen sein, das sich mit anderen VMs synchronisiert.

Jede Blockchain im AVA Netzwerk ist eine Instanz einer VM. Eine VM kann mehrere Male über verschiedene Subnetze (mehr dazu weiter unten) deployed werden. Dabei erstellt jede VM eine individuelle ChainID.

Eine VM kann mit einer Laufzeitumgebung verglichen werden. Sie ist sowohl sandboxed als auch vollständig vom Rest der Blockchain isoliert. Dies bedeutet, dass Code, der in der VM ausgeführt wird, keinen Zugriff auf Netzwerk, Dateisystem oder andere Prozesse hat. Wenn ein Entwickler eine VM entwickelt, muss er sich somit nicht mit der Logik auf niedrigerer Ebene wie das Netzwerk, der Konsensus Algorithmus oder die Datenstruktur der Blockchain befassen. AVA macht das alles im Hintergrund, damit sich die Entwickler auf das wesentliche konzentrieren können.

3. Chains

Chain ist der Überbegriff für VM Instanzen. Jede Chain hat eine ChainID und kann nur Teil von einem Subnetz sein. Innerhalb von diesem Subnetz kann dieselbe VM Instanz jedoch mehrmals deployed werden.

4. Subnetze

Ein Subnetz stellt ein Set von Validators auf der AVA Plattform dar, welche auserwählt wurden um eine Gruppen von Chains zu validieren. Jegliche Chain die in einem Subnetz deployed wird, wird von der Staking-Plattform desselben Subnetzes validiert. D.h. diejenigen Validators, die sich explizit entscheiden für dieses Subnetz zu validieren. Was wiederum heisst, dass jedes Subnetz die nötigen Incentives definieren muss, damit Validators auch Anreize haben in diesem Subnetz als Validator teilzunehmen.

Warum sind Subnetze ein wichtiges Konzept?
Im Gegensatz zu anderen Blockchain-Plattformen wurde AVA so konzipiert, dass es flexibel, erweiterbar und hochgradig interoperabel ist. Ein solches Design funktioniert nur wenn den Entwicklern Flexibilität und Anpassungsmöglichkeiten sowohl auf Anwendungsebene (durch Implementierung von VMs) als auch auf Netzwerk- und Blockchain-Ebene geboten werden. Letzteres wird durch die Funktion der Subnetze erreicht.

Das AVA-Subnetz

Wie bereits erwähnt, ist AVA ein Netzwerk von Blockchains. Es gibt 3 Blockchains, die dem AVA-Netzwerk eigen sind. Sie werden vom Standard-Subnetz validiert.

  • P-Chain (Plattform): Diese Chain verwaltet die Metadaten im AVA-Netzwerk. Die P-Chain koordiniert die Validators, verwaltet die aktiven Subnetze und ermöglicht den Entwicklern schlussendlich neue Subnetze (Blockchains) zu erstellen.
  • X-Chain (Exchange): Die X-Chain dient als dezentrale Plattform für die Erstellung und den Handel von digitalen Assets (subnetzübergreifend). Somit wird auch das Plattform eigene Token “AVA” in dieser Kette verwaltet und gehandelt. Die X-Chain verwendet eine DAG als Datenstruktur und einem UTXO-basierten Modell. Dies ermöglicht eine parallele Ausführung und eine einfache Verwaltung des Wachstums der Datenstruktur. Unter diesen Bedingungen können Ressourcen sehr schnell über das gesamte AVA-Ökosystem ausgetauscht werden.
  • C-Chain (Contracts): Wie es der Name bereits verrät handelt es sich hier um die default smart contract Chain. Hier ist es möglich, smart contracts mit dem Snowman-Konsensus-Protokoll (und nicht mit dem derzeit vom Ethereum-Netzwerk verwendeten Nakamoto-Protokoll) leistungsfähiger zu erstellen und auszuführen.

Mit Ausnahme vom AVA Subnetz, welches von jedem Validator der AVA-Plattform validiert werden muss, sind alle anderen Subnetze für das Validieren optional. Jeder Validator kann somit für sich entscheiden ob er an anderen Subnetzen teilnehmen und gleichzeitig kettenübergreifende Beteiligung und Austausch zwischen Subnetzen ermöglichen will. Durch eine gemeinsame Gruppe von Validators stellt AVA sicher, dass die Sicherheit der Subnetze in der P-Kette verwurzelt ist.

Werkzeuge

AVA verfügt über mehrere Tools zum Erstellen und Entwickeln auf der Plattform.

Gecko

Der erste Client für das AVA-Netzwerk, geschrieben von AVA Labs. Gecko ist eine Go-Implementierung des AVA-Protokolls. Es verfügt über eine vollständige Suite von JSON RPCs für die Interaktion mit den VM APIs. Es enthält zahlreiche local Keystore, Metrics, IPC und Admin APIs für die Interaktion mit dem Node.

Slopes

Die Javascript-Bibliothek für die Interaktion mit AVA APIs. Slopes lässt sich gut in vorhandene dezentrale Anwendungen integrieren, um eine AVA-Integration zu ermöglichen. Es verfügt über eine modulare Bibliotheksarchitektur, mit der benutzerdefinierte VMs Plugins schreiben können, um die Slopes-Funktionalität zu erweitern.

Avash

Der Einstieg in eine lokale Testumgebung ist entmutigend. Avash ist ein in Go geschriebenes Programm, mit dem schnell lokale Netzwerke für Testzwecke erstellen werden kann. Mit der Unterstützung von Lua scripts ermöglicht Avash Entwicklern, verschiedene lokale Netzwerke zu automatisieren, Subnetze zu starten und Chains in diesen Netzwerken zu erstellen, und in CI Pipelines zu integrieren.

AVA Wallet und Faucet

Eine Wallet Dapp und ein Faucet Server wurden als Open-Source-Version bereitgestellt, damit Entwickler das AVA-Ökosystem demonstrieren können. Mit dem Wallet können Gelder im gesamten Netzwerk gesendet und empfangen werden. Es werden mehrere Assets in der X-Chain unterstützt. Wenn private, gemeinsam genutzte Testumgebungen verwendet werden, ist der Faucet Server hilfreich, damit mehrere Benutzer das sammeln von Gelder testen können.

Wichtige Quellen

Die deutsche Community

Quellcode

Entwickler Leitfaden

AVA Labs Quellen

Originaltext: Collin Cusce
Übersetzung: Chris Wilbourgé
Support: Sebastian von Swiss Staking

--

--