Moonbeam Truffle Box

Dmytriiev Petro
Moonbeam-DE translations
6 min readJul 29, 2021

Einleitung

Als Teil unserer ständigen Bemühungen, den Entwicklern die mit der Arbeit an Moonbeam beginnen möchten zu helfen, haben wir die Moonbeam-Trüffelbox auf den Markt gebracht. Mit der Box finden Entwickler ein Boilerplate-Setup, um schnell mit dem Einsetzen von Smart Contracts auf Moonbeam zu beginnen. Mit der Moonbeam Truffle-Box haben wir auch das Moonbeam Truffle-Plugin integriert, das einige Befehle einführt, um einen Entwicklungsknoten in Ihrer lokalen Umgebung als Docker-Image auszuführen. Dadurch entfällt der Prozess des Einrichtens eines lokalen Knotens (der beim Erstellen seiner Binärdatei bis zu 40 Minuten dauern kann) und ist eine schnelle und einfache Lösung, um mit der Entwicklung in Ihrer lokalen Umgebung zu beginnen.

Dieses Tutorial führt Sie durch die Einrichtung der Box, die Verwendung des Moonbeam Truffle-Plugins und das Einsetzen von Verträgen sowohl für einen Entwicklungs-Moonbeam-Knoten als auch für Moonbase Alpha mit Truffle mit der Box-Basiskonfiguration.

Hinweis

Diese Anleitung basiert auf einer Ubuntu 18.04-Installation. Zum Zeitpunkt des Schreibens waren die verwendeten Node.js- und npm-Versionen 15.2.1 bzw. 7.0.8. Node.js-Versionen höher als 10.23.0 sind erforderlich. Wir haben auch einen Fehler bei der Installation der Pakete mit der npm-Version 7.0.15 festgestellt. Sie können npm downgraden, indem Sie npm install -g npm@version ausführen und die gewünschte Version einstellen.

Voraussetzungen prüfen

Wir müssen Node.js (wir verwenden v15.x) und den npm-Paketmanager installieren. Sie können direkt von Node.js oder in Ihrem Terminal herunterladen:

Ubuntu:

curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -

sudo apt install -y nodejs

MacOS:

# You can use homebrew (https://docs.brew.sh/Installation)

brew install node

# Or you can use nvm (https://github.com/nvm-sh/nvm)

nvm install node

Wir können überprüfen, ob alles richtig installiert ist, indem wir die Version für jedes Paket abfragen:

node -v

npm -v

Zum Zeitpunkt der Erstellung dieser Anleitung wurden die Versionen 15.2.1 bzw. 7.0.8 verwendet. Als nächstes können wir Trüffel optional global installieren. Dazu können Sie folgenden Befehl ausführen:

npm install -g truffle

Zum Zeitpunkt der Erstellung dieses Handbuchs war die verwendete Version 5.1.51.

Herunterladen und Einrichten der Trüffelbox

Um mit der Moonbeam Truffle-Box zu beginnen, wenn Sie Truffle global installiert haben, können Sie Folgendes ausführen:

mkdir moonbeam-truffle-box && cd moonbeam-truffle-box

truffle unbox PureStake/moonbeam-truffle-box

Dennoch hängt die Box von dem Trüffel ab, falls Sie es nicht global installieren möchten. In einem solchen Fall können Sie das folgende Repository direkt klonen:

git clone https://github.com/PureStake/moonbeam-truffle-box

cd moonbeam-truffle-box

Mit den Dateien in Ihrem lokalen System besteht der nächste Schritt darin, alle Notwendigkeiten zu installieren, indem Sie Folgendes ausführen:

npm install

Hinweis

Bei der Installation der Pakete mit der npm-Version 7.0.15 ist uns ein Fehler aufgefallen. Sie können npm downgraden, indem Sie npm install -g npm@version ausführen und die gewünschte Version einstellen. Zum Beispiel 7.0.8 oder 6.14.9.

Damit sind alle Voraussetzungen abgeschlossen, die Sie benötigen, um die Moonbeam-Trüffelbox zu verwenden.

Grundfunktionen

Die Box ist mit zwei Netzwerken vorkonfiguriert: dev (für einen Entwicklungsknoten) und Moonbase (Moonbeam TestNet). Ebenfalls ist als Beispiel ein ERC20-Token-Vertrag und ein einfaches Testskript enthalten. Der standardmäßig eingestellte Solidity-Compiler ist ^0.7.0, kann aber nach Bedarf geändert werden. Wenn Sie Erfahrung mit Trüffel schon haben, wird sich dieses Setup vertraut anfühlen.

const HDWalletProvider = require(‘@truffle/hdwallet-provider’);

// Moonbeam Development Node Private Key

const privateKeyDev =

‘99B3C12287537E38C90A9219D4CB074A89A16E9CDB20BF85728EBD97C343E342’;

// Moonbase Alpha Private Key → Please change this to your own Private Key with funds

// NOTE: Do not store your private key in plaintext files

// this is only for demostration purposes only

const privateKeyMoonbase =

‘YOUR_PRIVATE_KEY_HERE_ONLY_FOR_DEMOSTRATION_PURPOSES’;

module.exports = {

networks: {

// Standalode Network

dev: {

provider: () => {

//…

return new HDWalletProvider(

privateKeyDev,

‘http://localhost:9933/'

);

},

network_id: 1281,

},

// Moonbase Alpha TestNet

moonbase: {

provider: () => {

//…

return new HDWalletProvider(

privateKeyMoonbase,

‘https://rpc.testnet.moonbeam.network'

);

},

network_id: 1287,

},

},

// Solidity 0.7.0 Compiler

compilers: {

solc: {

version: ‘⁰.7.0’,

},

},

// Moonbeam Truffle Plugin

plugins: [‘moonbeam-truffle-plugin’],

};

Die Datei truffle-config.js enthält auch den privaten Schlüssel des Genesis-Accounts für den Entwicklungsknoten. Die diesem Schlüssel zugeordnete Adresse enthält alle Tokens in dieser Entwicklungsumgebung. Für Platzierung im Moonbase Alpha TestNet müssen Sie den privaten Schlüssel einer Adresse angeben, die Tokens enthält. Dazu können Sie ein Konto in MetaMask erstellen, es über den TestNet-Faucet aufladen und seinen privaten Schlüssel exportieren.

Bei der Verwendung von Truffle in jedem Ethereum-Netzwerk können Sie die normalen Befehle zum Kompilieren, Testen und Bereitstellen von Smart Contracts in Moonbeam ausführen. Sie können beispielsweise die folgenden Befehle mit dem enthaltenen ERC20-Token-Vertrag ausprobieren:

truffle compile # compiles the contract

truffle test #run the tests included in the test folder

truffle migrate — network network_name #deploys to the specified network

Abhängig von dem Netzwerk, in dem Sie die Verträge laufen lassen möchten, müssen Sie network_name entweder durch dev (um den Entwicklungsknoten als Ziel zu erreichen) oder Moonbase (um das TestNet als Ziel zu verwenden) ersetzen.

Hinweis

Wenn Sie Truffle nicht global installiert haben, können Sie stattdessen npx truffle oder ./node_modules/.bin/truffle anstelle von truffle verwenden.

The Moonbeam Truffle Plugin

Um einen Moonbeam-Entwicklungsknoten einzurichten, können Sie derzeit diesem Tutorial folgen. Der Vorgang dauert insgesamt etwa 40 Minuten, und Sie müssen Substrate und alle seine Notwendigkeiten installieren. Das Moonbeam Truffle-Plugin bietet eine Möglichkeit, viel schneller mit einem Entwicklungsknoten zu beginnen, und die einzige Voraussetzung ist, dass Docker installiert ist (zum Zeitpunkt des Schreibens war die verwendete Docker-Version 19.03.6). Weitere Informationen zur Installation von Docker finden Sie auf dieser Seite. Um das Docker-Image herunterzuladen, führen Sie die folgende Zeile aus:

truffle run moonbeam install

Dann stehen Ihnen eine Reihe von Befehlen zur Verfügung, um den im Docker-Image enthaltenen Knoten zu führen:

truffle run moonbeam start

truffle run moonbeam status

truffle run moonbeam pause

truffle run moonbeam unpause

truffle run moonbeam stop

truffle run moonbeam remove

Jeder der zuvor gezeigten Befehle führt die folgende folgendes aus:

  • Start: Startet einen Moonbeam-Entwicklungsknoten. Dadurch werden zwei RPC-Endpunkte bereitgestellt:
  • HTTP: http://127.0.0.1:9933
  • WS: ws://127.0.0.1:9944
  • Status: Zeigt dem Benutzer an, ob ein Moonbeam-Entwicklungsknoten ausgeführt wird
  • Pause: Hält den Entwicklungsknoten an, wenn er läuft
  • Unpause: Hebt die Pause des Entwicklungsknotens auf, wenn er pausiert wurde
  • Stop: Stoppt den Entwicklungsknoten, wenn er ausgeführt wird. Dadurch wird auch der Docker-Container entfernt
  • Remove: Löscht das purestake/moonbase Docker-Image

Sie können die Ausgabe dieser Befehle in der folgenden Abbildung sehen:

Wenn Sie mit Docker vertraut sind, können Sie die Plugin-Befehle überspringen und direkt mit dem Docker-Image interagieren.

Testen der Moonbeam Trüffelbox

Die Box enthält die Mindestanforderungen, die Ihnen den Einstieg erleichtern. Lassen Sie uns zuerst die Verträge kompilieren, indem Sie Folgendes ausführen:

truffle compile

Denken Sie daran, dass Sie den Teil ./node_modules/.bin/ in den Befehlen überspringen können, wenn Sie Truffle global installiert haben. Mit dem kompilierten Vertrag können wir den in der Box enthaltenen Basistest ausführen (beachten Sie, dass für diese Tests Ganache verwendet wird und nicht der Moonbeam-Entwicklungsknoten):

truffle test

Nachdem Sie den Plugin-Installationsbefehl ausgeführt haben, der das Docker-Image des Moonbeam-Entwicklungsknotens herunterlädt, starten wir den lokalen Knoten und stellen den Token-Vertrag in unserer lokalen Umgebung bereit:

truffle run moonbeam start

truffle migrate — network dev

Anschließend können wir unseren Token-Vertrag für Moonbase Alpha bereitstellen, aber zuerst stellen Sie sicher, dass Sie einen privaten Schlüssel mit Tokens in der Datei truffle-config.js hinzufügen. Sobald der private Schlüssel hinzugefügt ist, können wir den migrate Befehl ausführen, der auf das TestNet zeigt.

truffle migrate — network moonbase

Und das ist es, Sie haben die Moonbeam-Trüffelbox verwendet, um einen einfachen ERC20-Token-Vertrag sowohl in Ihrem Moonbeam-Entwicklungsknoten als auch in Moonbase Alpha einzufügen.

Original article: https://docs.moonbeam.network/integrations/trufflebox/

--

--