Zeppelin OS - ein weiterer Schritt in Richtung sicherer Smart-Verträge

    Ethereum ist heute eine der beliebtesten Plattformen für die Erstellung dezentraler Anwendungen, die derzeit aktiv entwickelt wird. Eine der Zeppelin-Innovationen, die wir heute selbst ausprobieren werden. Und für diejenigen, die sich im „Tank“ befinden, ist Zeppelin ein Unternehmen, das die Sicherheit intelligenter Verträge entwickelt und überprüft. Die OpenZeppelin Smart Contract Library ist das bekannteste Produkt. 



    Es stellte sich heraus, dass die Entwicklungstools für Solidity noch nicht abgeschlossen sind, sodass Entwickler manchmal nicht die volle Leistung der Smart Contract-Technologie nutzen können. Beispielsweise stellen die „Standardbibliotheken“ eine Einschränkung dar, da bei jedem erneuten Laden eines vorhandenen Codes in das Netzwerk die Kosten für die „Bereitstellung“ des Codes und die Anzahl möglicher Fehler steigen. All dies führt zu erheblichen Einschränkungen bei der Erstellung großer und multifunktionaler dezentraler Anwendungen.


    Was ist Zeppelin OS?




    Zeppelin OS ist eine Open Source-Plattform, die aus Tools und Diensten über EVM besteht und zur Entwicklung und Verwaltung von dezentralen Anwendungen dient. 


    Das Zeppelin-Team identifizierte die vier wichtigsten Komponenten, von denen einige bereits implementiert und zur Verwendung verfügbar sind.


    • Zeppelin OS Kernel ist eine aktualisierte und Community-gesteuerte „Core“ -Plattform. Es besteht aus einer Reihe von Bibliotheken in der Blockchain, mit denen Entwickler eine Verbindung zu ihren Projekten herstellen können. Vorreiter war OpenZeppelin, das bereits zum Einsatz kommt. 
    • Zeppelin OS Scheduler ermöglicht Verträgen, die asynchrone Ausführung einer Funktion anzufordern, und ermöglicht es jedem Teilnehmer, die Gaskosten zu bezahlen und dafür eine Belohnung zu erhalten.
    • Der Zeppelin OS Marketplace ist ein wichtiger Bestandteil der Interaktion zwischen Verträgen und Anwendungen, eine Art App Store / Google Play für die Blockchain. Ermöglicht die Verwendung anderer Dienste zum Erstellen komplexerer Anwendungen.
    • Off-Chain-Tools für Zeppelin OS - eine Reihe von Tools zum Bearbeiten und Analysieren dezentraler Anwendungen.

    Zeit, es selbst zu versuchen!


    Ich wollte unbedingt mit Zeppelin OS arbeiten, den ersten Vertrag schreiben und ihn aktualisieren. Prüfen Sie, ob wirklich alles so ist und ob die Entwickler nicht geschummelt haben.


    Wenn Sie daher das Gerät mit dem aktualisierten Speicher und dem aktualisierten Proxy für zukünftige Artikel belassen, werden wir auf die bereits implementierte Funktionalität übergehen.


    Die gesamte Dokumentation zu Zeppelin OS kann hier eingesehen werden . Zuerst musst du zos installieren: 


    $ npm install --global zos

    Erstellen Sie nun das Projektverzeichnis und alles, was Sie dafür benötigen:


    $ mkdir zostest && cd zostest
    $ npm init
    $ zos init zostest

    Danach werden alle erforderlichen Konfigurationsdateien erstellt, sodass Sie nun Verträge schreiben können. Als Testvertrag schreiben wir ein kleines "Repository von Variablen":


    pragma solidity 0.4.24;
    import "zos-lib/contracts/migrations/Migratable.sol";
    contract SimpleStorage is Migratable {
        uint storedData;
        function initialize(uint256 _x) isInitializer("SimpleStorage", "0") public {
            storedData = _x;
        }
        function get() public constant returns (uint) {
            return storedData;
        }
    }

    Wir erstellen und fügen unseren Vertrag hinzu:


    $ zos add SimpleStorage



    Führen Sie das Testnetzwerk (in einem separaten Terminal) aus:


    $ npx ganache-cli --port 9545

    Wir pushen in unser lokales Netzwerk und eine neue Konfigurationsdatei wird erstellt zos.local.json:


    $ zos push --network local



    Der Fall ist klein, es verbleibt die Erstellung unseres aktualisierten Vertrags, gleichzeitig ausgeführt initialize()mit Argument 88 für unser "Repository":


    $ zos create SimpleStorage --init initialize --args 88 --network local



    Versuchen wir nun, eine Funktion hinzuzufügen, um die Variable im "Speicher" zu vergrößern. Beispiel:


    pragma solidity 0.4.24;
    import "zos-lib/contracts/migrations/Migratable.sol";
    contract SimpleStorage is Migratable {
        uint storedData;
        function initialize(uint256 _x) isInitializer("SimpleStorage", "0") public {
            storedData = _x;
        }
        function incrementStorage(uint256 _x) public {
            storedData += _x;
        }
        function get() public constant returns (uint) {
            return storedData;
        }
    }

    Dann müssen Sie den Vertrag im Netzwerk aktualisieren:


    $ zos push --network local



    $ zos update SimpleStorage --network local



    Jetzt können Sie sehen, was passiert ist. Dafür verwenden wir truffle console:


    $ npx truffle console --network=local
    truffle(local)> sS = SimpleStorage.at()

    Und  Sie können in zos.local.json der entsprechenden Spalte nachsehen , was wir im "Repository" haben und ob wir die Variable erhöhen können:




    Alles funktioniert super, es gibt viele Möglichkeiten, Verträge zu testen. Ich würde sagen, dass Zeppelin OS mit Sicherheit als Entwicklungswerkzeug verwendet werden kann. 


    Was haben wir getan


    Wir haben überprüft, ob Sie mit Zeppelin OS Verträge bereitstellen, aktualisieren, kompilieren und testen können. Es scheint ein großartiges Tool für diejenigen zu sein, die gerne mit der Befehlszeile arbeiten und Remix im Browser zittert. Außerdem können Sie empfehlen, mit diesem bestimmten Projekt eine Einführung in Solidity und Smart Contracts zu beginnen.


    Jetzt auch beliebt: