Trüffelmigrationen erklärt
TRUFFL -Migration: Ein leistungsstarkes Tool für die automatisierte Bereitstellung von Smart Contracts
Migrationen sind eine Möglichkeit für Entwickler, die Bereitstellung von Daten und deren Unterstützungsstruktur zu automatisieren. Sie sind sehr nützlich bei der Verwaltung der Bereitstellung neuer Softwareversionen und sind nicht auf Blockchain -Entwicklung beschränkt.
MitMigration mit Trüffel können wir intelligente Verträge in die Ethereum -Blockchain (lokal, testNet oder mainnet) "verschieben" und die erforderlichen Schritte für die Verbindung des Vertrags festlegen und die anfänglichen Daten des Vertrags bevölkern.
Der eigentliche Vorteil der Trüffelmigration besteht darin, Vertragsadressen auf der Blockchain zu verwalten. Diese normalerweise mühsame Arbeit wird durch Trüffel fast vollständig abstrahiert.
Schlüsselpunkte
- Trüffelmigration ist entscheidend für die Automatisierung der Bereitstellung intelligenter Verträge in die Ethereum -Blockchain, mit der Entwickler Vertragsadressen und Interaktionen effizient verwalten können.
- Dieser Prozess beinhaltet das Erstellen von Migrationsskripten mit JavaScript, mit denen Verträge reibungslos bereitgestellt und ihre Abhängigkeiten verarbeitet werden können.
- Es ist entscheidend,
truffle compile
zu verwenden, um Verträge zu erstellen, um Artefakte zu erzeugen, die die Wechselwirkung zwischen dem Vertrag und der Blockchain vor dem Ausführen der Migration erleichtern. - Entwickler können einen einzelnen Befehl verwenden, um mehrere Verträge und ihre Interdependenzen zu verwalten, wodurch die Skalierbarkeit und Wartbarkeit von Blockchain -Anwendungen verbessert wird.
Vorsichtsmaßnahmen
Stellen Sie sicher, dass das Trüffel -Framework und die Ganache -CLI installiert sind.
Anfänger
Wählen Sie zunächst einen Projektordner aus und führen Sie truffle init
aus. Sie sollten eine Ausgabe wie folgt erhalten:
<code>Downloading... Unpacking... Setting up... Unbox successful. Sweet! Commands: Compile: truffle compile Migrate: truffle migrate Test contracts: truffle test</code>
Dieser Befehl erstellt ein grundlegendes TRUFFL -Projekt in Ihrem Verzeichnis. Die Verzeichnisstruktur lautet wie folgt:
<code>. ├── contracts │ └── Migrations.sol ├── migrations │ └── 1_initial_migration.js ├── test ├── truffle-config.js └── truffle.js</code>
Erstellen Sie im Verzeichnis contracts
zuerst eine neue Datei mit dem Namen Storage.sol
mit dem folgenden Inhalt:
pragma solidity ^0.4.21; contract Storage { mapping (string => string) private _store; function addData(string key, string value) public { require(bytes(_store[key]).length == 0); _store[key] = value; } function removeData(string key) public returns (string) { require(bytes(_store[key]).length != 0); string prev = _store[key]; delete _store[key]; return prev; } function changeData(string key, string newValue) public { require(bytes(_store[key]).length != 0); _store[key] = newValue; } }
Initiale Migration
Sie haben möglicherweise festgestellt, dass beim Ausführen truffle init
: Migrations.sol
und 1_initial_migration.js
zwei Dateien erstellt werden.
Erste Migrationsdateien erfordern selten Änderungen. Ihre Rolle besteht im Wesentlichen darin, Adressen auf der Blockchain zu verfolgen.
Die Datei Migrations.sol
kann so geschrieben werden, wie Sie es möchten. Sie muss jedoch der festen Schnittstelle entsprechen, die vom Befehl truffle init
erstellt wurde. Sie können einige erweiterte Migrationen in diesen Dateien durchführen, aber wie gesagt, dies wird selten benötigt.
1_initial_migration.js
Dateien. Sein Zweck ist einfach, die Migrations.sol
-Datei in die Zielblockchain zu bringen.
migrieren Sie Daten
Um intelligente Verträge für die Ethereum -Blockchain bereitzustellen, müssen Sie zuerst die Migrationsdatei schreiben. Erstellen Sie zunächst in Ihrem migrations
-Verzeichnis eine Datei mit dem Namen 2_deploy_contracts.js
. Ihre Projektstruktur sollte jetzt so aussehen:
<code>Downloading... Unpacking... Setting up... Unbox successful. Sweet! Commands: Compile: truffle compile Migrate: truffle migrate Test contracts: truffle test</code>
Um intelligente Verträge mithilfe von Migration bereitzustellen, müssen wir zunächst auf ihre -Argnakte zugreifen. Diese Dateien beschreiben die Vertragsadresse, das Netzwerk, in dem der Vertrag bereitgestellt wurde, und die Funktionen, die der Vertrag hat.
Woher kommen all diese Daten?
In Ihrem Projektverzeichnis reiten Sie truffle compile
aus. Wenn alles gut läuft, sollten Sie eine Ausgabe wie folgt erhalten:
<code>. ├── contracts │ └── Migrations.sol ├── migrations │ └── 1_initial_migration.js ├── test ├── truffle-config.js └── truffle.js</code>
Abhängig von der Compiler -Version erhalten Sie möglicherweise einige Warnungen, aber solange es keine Fehler gibt, können Sie fortfahren.
Überprüfen Sie nun Ihre Projektverzeichnisstruktur erneut:
pragma solidity ^0.4.21; contract Storage { mapping (string => string) private _store; function addData(string key, string value) public { require(bytes(_store[key]).length == 0); _store[key] = value; } function removeData(string key) public returns (string) { require(bytes(_store[key]).length != 0); string prev = _store[key]; delete _store[key]; return prev; } function changeData(string key, string newValue) public { require(bytes(_store[key]).length != 0); _store[key] = newValue; } }
Beachten Sie, dass es jetzt einen build
-Firne gibt, der zwei Dateien enthält - Migrations.json
und Storage.json
- mit den intelligenten Vertragsdateien im Verzeichnis contracts
übereinstimmt.
Diese *.json -Dateien enthalten Beschreibungen ihrer jeweiligen intelligenten Verträge. Zu den Beschreibungen gehören:
- Vertragsname
- Vertrag ABI (Anwendung Binary Interface - eine Liste aller intelligenten Vertragsfunktionen sowie deren Parameter und Rückgabewerte)
- Vertragsbytecode (kompilierte Vertragsdaten)
- bytecode bereitgestellt (die neueste Version von Bytecode, die in der Blockchain bereitgestellt wird)
- Compiler -Version des Compiler -Vertrags
- Die Liste der Netzwerke der bereitgestellten Verträge und die Adresse jedes Vertrags im Netzwerk.
Mit dieser Datei können TRUFFL JavaScript -Wrapper für die Kommunikation mit intelligenten Verträgen erstellen. Wenn Sie beispielsweise in JavaScript Code contract.address
aufrufen, liest das TRUFFL -Framework die Adresse aus der *.json -Datei und implementiert eine einfache Konvertierung zwischen der Vertragsversion und dem Netzwerk.
Migrationsdateien schreiben
Schreiben wir mit diesem Wissen die erste Migrationsdatei. Schreiben Sie in der Datei 2_deploy_contracts.js
Folgendes:
<code>. ├── contracts │ ├── Migrations.sol │ └── Storage.sol ├── migrations │ ├── 1_initial_migration.js │ └── 2_deploy_contracts.js ├── test ├── truffle-config.js └── truffle.js</code>
Eine Migrationsdatei schreiben ist so einfach. Führen Sie den folgenden Befehl im Terminal aus:
, um das Migrationsskript auszuführen:<code>Compiling ./contracts/Migrations.sol... Compiling ./contracts/Storage.sol... Writing artifacts to ./build/contracts</code>
Sie sollten eine Fehlermeldung erhalten:
<code>. ├── build │ └── contracts │ ├── Migrations.json │ └── Storage.json ├── contracts │ ├── Migrations.sol │ └── Storage.sol ├── migrations │ ├── 1_initial_migration.js │ └── 2_deploy_contracts.js ├── test ├── truffle-config.js └── truffle.js</code>
Dies bedeutet, dass Trüffel das Netzwerk, in dem Sie bereitstellen möchten, nicht finden kann.
ganache-cli
Um die simulierte Ethereum -Blockchain zu verwenden, laufen Sie
Dies bedeutet, dass Sie eine private Blockchain gestartet haben, die auf Localhost beträgt: 8545. Lassen Sie uns nun Trüffel einrichten, um sie im Netzwerk bereitzustellen.
truffle.js
Führen Sie Folgendes in die Datei
// 从 Storage.json 文件中获取 Storage 合约数据 var Storage = artifacts.require("./Storage.sol"); // JavaScript 导出 module.exports = function(deployer) { // deployer 是 Truffle 用于将合约部署到网络的包装器 // 将合约部署到网络 deployer.deploy(Storage); }
Dies bedeutet lediglich, dass Sie Ihren Vertrag in einem Netzwerk, das auf Localhost ausgeführt wird: 8545, bereitstellen.
truffle migrate
Jetzt run
build
TRUFFE migrt Ihren Vertrag in das Netzwerk und speichert Artefakte. Überprüfen Sie im Verzeichnis Storage.json
in der Datei networks
, dass dies korrekt ist, indem das Objekt
... (Der nachfolgende Inhalt entspricht dem Originaltext, einschließlich der Verarbeitung mehrerer Verträge, Netzwerke, Konten, Bibliotheken sowie der endgültigen Zusammenfassung und der FAQ, die hier nicht wiederholt werden.)
Das obige ist der detaillierte Inhalt vonTrüffelmigrationen erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Dieses Pilotprogramm, eine Zusammenarbeit zwischen CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal und betätigten, rationalisiert ARM64 CI/CD für CNCF -Github -Projekte. Die Initiative befasst sich mit Sicherheitsbedenken und Leistung

Dieses Tutorial führt Sie durch das Erstellen einer serverlosen Bildverarbeitungspipeline mit AWS -Diensten. Wir werden ein Next.JS -Frontend erstellen, der in einem ECS -Fargate -Cluster eingesetzt wird und mit einem API -Gateway, Lambda -Funktionen, S3 -Eimer und DynamoDB interagiert. Th

Bleiben Sie über die neuesten technischen Trends mit diesen Top -Entwickler -Newsletters informiert! Diese kuratierte Liste bietet für jeden etwas, von KI -Enthusiasten bis hin zu erfahrenen Backend- und Frontend -Entwicklern. Wählen Sie Ihre Favoriten und sparen Sie Zeit, um nach REL zu suchen

CI/CD -Rätsel und -Lösungen für Open -Source -Software in ARM64 Architektur Die Bereitstellung von Open -Source -Software auf der ARM64 -Architektur erfordert eine leistungsstarke CI/CD -Umgebung. Es gibt jedoch einen Unterschied zwischen den Stützniveaus von ARM64 und herkömmlichen X86 -Prozessorarchitekturen, die häufig im Nachteil sind. Infrastrukturkomponentenentwickler für mehrere Architekturen haben bestimmte Erwartungen für ihr Arbeitsumfeld: Konsistenz: Die Tools und Methoden, die über Plattformen hinweg verwendet werden, sind konsistent und vermeiden, dass der Entwicklungsprozess aufgrund der Einführung weniger beliebter Plattformen geändert werden muss. Leistung: Die Plattform- und Support -Mechanismus haben eine gute Leistung, um sicherzustellen, dass die Bereitstellungsszenarien bei der Unterstützung mehrerer Plattformen nicht von unzureichender Geschwindigkeit beeinflusst werden. Testabdeckung: Effizienz, Konformität und

Die kundenspezifische Entwicklung von Telekommunikationssoftware ist zweifellos eine beträchtliche Investition. Langfristig können Sie jedoch erkennen, dass ein solches Projekt möglicherweise kostengünstiger ist, da es Ihre Produktivität wie jede fertige Lösung auf dem Markt steigern kann. Verstehen Sie die wichtigsten Vorteile des Aufbaus eines maßgeschneiderten Telekommunikationssystems. Holen Sie sich die genauen Funktionen, die Sie benötigen Es gibt zwei potenzielle Probleme mit der von Ihnen gekauften Telekommunikationssoftware. Einige fehlen nützliche Funktionen, die Ihre Produktivität erheblich verbessern können. Manchmal können Sie sie mit einer externen Integration verbessern, aber das ist nicht immer genug, um sie großartig zu machen. Andere Software hat zu viele Funktionen und ist zu kompliziert, um sie zu verwenden. Sie werden wahrscheinlich einige davon nicht verwenden (niemals!). Eine große Anzahl von Funktionen trägt normalerweise zum Preis bei. Basierend auf Ihren Bedürfnissen
