Smart-Contracts

Programmiersprache

Nutze Golang als Programmiersprache (mit Ausnahme mancher Keyw�rter um richtige Verarbeitung zu gew�hrleisten), anstatt Programmiersprache neu zu erstellen.

Golang ist eine simple, einfach nutzbare Programmiersprache mit ausf�hrliche Hilfs-Dokumentation und Entwickler-Tools.

Es ist sehr typgepr�ft und viele Fehler k�nnen w�hrend der Zusammenstellung aufgedeckt werden.

Es ist modular und das System kann einfach externe Funktionen abschirmen, sodass Smart-Contracts eine einfache und vorhersehbare Umgebung sind.

Es gibt bereits viele Golang-Entwickler, welche einfach starten k�nnen wenn sie Smart-Contracts entwickeln m�chten.

Klassifizierung der Smart-Contracts

�ffentlich-Privat

�ffentlicher Contract : Nutzt den Code des Vertrags und kalkuliert den Hash als Name des Contracts. Das Konto ist ein �ffentliches.

Privater Contract: Es nutzt den Code-Hash des Vertrags und den zweiten Hash des Benutzerkontos als Namen des Contracts, sodass verschiedene Personen unterschiedliche private Vertr�ge mit demselben Code erstellen. Konto ist das Konto des Erstellers, was dem Contract erlaubt das Konto zu steuern.

So lange es der selbe Code ist, hat der ver�ffentlichte �ffentliche Vertrag den selben Namen.

Vertr�ge mit dem selben Code haben den selben Namen auf verschiedenen Chains und unterst�tzen ketten�bergreifenden Zugang zu Log-Informationen des selben Vertrags.

Funktionelle Unterteilung

Ausf�hrbarer Contract: Dieser Vertrag erm�glicht es Benutzern, ihn aufzurufen. Der Vertrag hat ein Ausf�hrungs-Eintrag. Standardgem�� kann jeder den Vertrag aufrufen.

Referenzierbarer Contract : Dieser Vertrag kann von anderen Vertr�gen importiert werden und somit wird ein neuer, st�rkerer Contract geformt. Ein Vertrag erlaubt beide Funktionen.

Smart-Contract-Beschreibung

Das System ben�tigt, dass der Contract allen Source-Code ver�ffentlicht, sodass jeder den inhalt sehen kann. Dies ist einfacher anzuschauen und zu verstehen als das kompilierte Bin�rprogramm.

Nachdem der Smart-Contract ver�ffentlicht wurde, ist die gesamte Code-Logik festgelegt. Indem du den Code verstehst, kannst du dem Smart-Contract vertrauen.

Alle Contracts k�nnen nur andere Contracts in die Kette importieren. Module au�erhalb der Kette d�rfen nicht importiert werden. System-Module, die Golang importieren, werden nicht unterst�tzt. Einige Schl�sselw�rter, die dazu f�hren, dass das Programm nicht mehr in Ordnung ist, werden gesperrt, z. B. go, select, rang, recover, cap.

Jede Chain besitzt den selben System-Vertrag, durch welchen Daten gelesen und geschrieben (Gespeichert), transferiert, etc. werden k�nnen. �ffentliche Contracts k�nnen nur �ffentliche Contracts importieren, wodurch sichergestellt ist, dass jeder �ffentliche Vertr�ge auf anderen Chains ver�ffentlichen kann. Private Contracts erlauben den Import von jedem Contract ohne Begrenzungen.

Der ver�ffntlichte Contract wird in auf jedem Node in ein programm kompiliert, welches von Nutzern erreicht werden kann.

Das Ausf�hren des Vertrags muss Energie verbrauchen (Tokens). Der Energieverbrauch ist durch die Zeilen an Code bestimmt, welche vom Vertrag ausgef�hrt werden. Wenn ein Contract in einen Node kompiliert wird, wird er durch Statistiken zur Codezeilenabdeckung dynamisch erh�ht.

Informationen ketten�bergreifend lesen

Smart-Contracts k�nnen Informationen ketten�bergreifend durch Log-Objekte lesen. Das Interface wird vom System-Contract bereitgestellt und unterst�tzt das Lesen von Informationen �ber verschiedene Ketten. Die gelesene Information ist vom selben Smart-Contract auf einer anderen Chain geschrieben

Der Protokollzeitunterschied muss gr��er als n \ * 5 Minuten sein. Die Zeitdifferenz ist die aktuelle Schreibzeit des Blockzeit-Protokolls. n ist der logische Abstand zwischen der aktuellen Kette und der Protokollkette (der Abstand von einem Punkt zum anderen im Bin�rbaum). Falls die Zeitvorgabe nicht erf�llt ist, wird eine Null-Ausgabe zur�ckgesendet.

Leistung und Skalierbarkeit

Der ausf�hrbare Vertrag wird in eine ausf�hrbare Datei kompiliert, wodurch eine h�here Effizient in der Ausf�hrung entsteht. Das TPS-Leistungs-Limit eines Smart-Contracts einer Chain h�ngt von deren TPS-Limit abund die Vertragsleistung f�r eine einzelne Kette n�hert sich theoretisch der Leistung der Kette, in der sie sich befindet.

Smart-Contracts werden in verschiedenen Chains ver�ffentlicht und verwenden mehrkettige Parallelverarbeitungsmechanismen, um die Gesamtleistung von Smart-Vertr�gen zu steigern.

Der Smart-Contract kann ketten�bergreifenden Datentransfer durch ketten�bergreifendes Lesen der Log-Funktion erreichen. Die letztendliche Leistung des Vertrags ist somit die Leistung des ganzen Systems.