Übung: Entwickeln einer Aufgabenliste und Bereitstellung in der Entwicklungssumgebung

Abgeschlossen

In dieser Übung entwickeln Sie einen Task-Manager. Diesen verwenden Sie, um einer Verbindung mit den Ropsten-Testnetzwerken herzustellen und die Bereitstellung durchzuführen.

Im ersten Teil der Übung konzentrieren Sie sich auf die Erstellung des Projekts, das Hinzufügen eines Smart Contracts und die anschließende Bereitstellung in einem Entwicklungsnetzwerk.

In diesem Tutorial verwenden Sie Folgendes:

  • Visual Studio Code zum Erstellen des Projekts
  • Truffle für die Kompilierung und Bereitstellung
  • Die Ganache-CLI als Blockchainentwicklungsserver

Neues Truffle-Projekt erstellen

  1. Erstellen Sie ein neues Verzeichnis namens todolist, indem Sie mkdir todolist in ein Terminal oder ein Eingabeaufforderungsfenster eingeben.

  2. Navigieren Sie zum neu erstellten Verzeichnis, indem Sie cd todolist eingeben.

  3. Initialisieren Sie das Verzeichnis als Truffle-Projekt, indem Sie truffle init eingeben.

  4. Öffnen Sie den Ordner todolist in Visual Studio Code.

  5. Erstellen Sie in Visual Studio Code eine Datei im Verzeichnis „Contracts“. Geben Sie dieser Datei den Namen TodoList.sol. Fügen Sie den folgenden Code in die neue Datei ein.

    // SPDX-License-Identifier: MIT
    pragma solidity >=0.4.22 <0.8.0;
    
    contract TodoList {
     uint public taskCount = 0;
    
     struct Task {
       uint id;
       string taskname;
       bool status;
     }
    
     mapping(uint => Task) public tasks;
    
     event TaskCreated(
       uint id,
       string taskname,
       bool status
     );
    
     event TaskStatus(
       uint id,
       bool status
     );
    
     constructor() public {
       createTask("Todo List Tutorial");
     }
    
     function createTask(string memory _taskname) public {
       taskCount ++;
       tasks[taskCount] = Task(taskCount, _taskname, false);
       emit TaskCreated(taskCount, _taskname, false);
     }
    
     function toggleStatus(uint _id) public {
       Task memory _task = tasks[_id];
       _task.status = !_task.status;
       tasks[_id] = _task;
       emit TaskStatus(_id, _task.status);
     }
    
    }
    

Migration zur und Bereitstellung in die Entwicklung

  1. Erstellen Sie im Ordner migrations/ eine Migration für die Datei TodoList.sol. Beginnen Sie damit, eine neue Datei namens 2_deploy_contracts.js zu erstellen. Fügen Sie den folgenden Code in die Datei ein, um den Smart Contract „TodoList“ bereitzustellen.

     var TodoList = artifacts.require("./TodoList.sol");
    
     module.exports = function(deployer) {
      deployer.deploy(TodoList);
     };
    
  2. Öffnen Sie ./truffle-config.js im Hauptverzeichnis des Projekts. Heben Sie die Auskommentierung des Codes auf, um die Bereitstellung im Entwicklungsnetzwerk über den localhost-Port 8545 durchzuführen. Ihr Code sollte wie folgt aussehen.

     networks: {
       development: {
         host: "127.0.0.1",
         port: 8545,
         network_id: "*" // Match any network id
       }
     },
    
  3. Öffnen Sie einen Terminalbereich in Visual Studio Code. Verwenden Sie die Ganache-CLI zum Starten einer Entwicklungsblockchain, indem Sie ganache-cli eingeben.

  4. Öffnen Sie in Visual Studio Code einen Terminalbereich, um den TodoList-Smart Contract zu kompilieren und zum Entwicklungsnetzwerk zu migrieren. Führen Sie die folgenden Befehle aus:

    • truffle compile
    • truffle migrate --reset

Mit diesen Schritten werden die Smart Contracts im Entwicklungsnetzwerk bereitgestellt. Verwenden Sie nun die Truffle-Konsole, um die Smart Contracts zu untersuchen und anzupassen. Sie sollten sehen, dass Sie eine Aufgabe erstellt haben, als Sie die Aufgabenliste initialisiert haben.

In der Truffle-Konsole können Sie weiterhin mit dem Smart Contract interagieren. Beispielsweise können Sie Aufgaben erstellen und festlegen sowie ihren Status ändern.