Übung: Entwickeln einer Aufgabenliste und Bereitstellung in der Entwicklungssumgebung
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
Erstellen Sie ein neues Verzeichnis namens todolist, indem Sie
mkdir todolist
in ein Terminal oder ein Eingabeaufforderungsfenster eingeben.Navigieren Sie zum neu erstellten Verzeichnis, indem Sie
cd todolist
eingeben.Initialisieren Sie das Verzeichnis als Truffle-Projekt, indem Sie
truffle init
eingeben.Öffnen Sie den Ordner todolist in Visual Studio Code.
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
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); };
Ö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 } },
Öffnen Sie einen Terminalbereich in Visual Studio Code. Verwenden Sie die Ganache-CLI zum Starten einer Entwicklungsblockchain, indem Sie
ganache-cli
eingeben.Ö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.