Wie teste ich einen Vertrag auf Truffle mit mehreren Knoten?

Ich bin ein Truffle-Benutzer. Ich möchte einen Vertrag erstellen und diesen testen. Beim Testen möchte ich drei Knoten einrichten, sie verknüpfen, auf den Vertrag zugreifen und ihn testen. Ist das möglich? Oder mache ich seltsame Dinge? Bitte sagen Sie mir ggf.

  • node1 rpcport:8101,
  • node2 rpcport:8102,
  • node3 rpcport:8103,

Ich habe arrangiert. Ich habe den admin.addPeerBefehl verwendet, verlinke sie.

truffle migrateAls Nächstes habe ich den Befehl ausgeführt, um diesen Vertrag auf node1 bereitzustellen .

Als Nächstes habe ich den Befehl ausgeführt, um eine App zu erstellen, die ich mit Truffle auf node1 erstellt habe truffle build.

Und ich möchte die App auf node2, node3 erstellen, dann möchte ich auf denselben Vertrag zugreifen. ← Wie mache ich das?

Interessant, erfüllt die Verwendung mehrerer Knoten irgendeinen Zweck? Ich sehe die Vorteile nicht,

Antworten (1)

Ich glaube, ich verstehe, was du vorhast.

Kann man mit Sicherheit sagen, dass Sie nur in einem etwas realistischeren Netzwerk mit mehr als einem teilnehmenden Knoten und mehr als einem teilnehmenden Client testen möchten?

Wenn ja, sollten Sie in der Lage sein, die Bedenken zu trennen.

Private Chain Sie können eine private Chain mit drei Knoten einrichten. Wenn die Kette wie erwartet funktioniert, wird der Vertrag, den Sie auf einem Knoten bereitstellen, vom Miner (jeder Knoten oder Knoten, die diese Kette abbauen) abgebaut und schließlich auf allen Knoten bereitgestellt, wenn er abgebaut wird. Gleiches gilt für die Transaktionen und Ereignisse, falls vorhanden. Jeder Knoten in einem Ethereum-Netzwerk hat die gleiche Ansicht der Konsensdaten. Es ist einfach nicht möglich, den Vertrag nicht auf allen Knoten bereitzustellen.

Der Build-Prozess von Front End Truffle (2.x) führt Bootstrap-Code mit Ihrer App zusammen und legt die zusammengeführte Datei im ./buildOrdner ab. Es geht nicht darum, wie dieser Code in den Browser geladen wird.

Das Front-End wird normalerweise von einem konsistenten Standort aus bereitgestellt, sodass die Verwendung Ihrer Build-Workstation als Webserver eine gültige Option ist. Sie möchten RPC auf dem Standardport 8545 oder zumindest auf allen Clients konsistent halten, da überall dasselbe Frontend funktionieren muss. Ich würde bei der Standardeinstellung bleiben, damit es eines Tages im Testnet oder Mainnet für Leute funktioniert, die Standardeinstellungen verwenden. Man kann mit Sicherheit sagen, dass Ihr Frontend einen Ethereum-Knoten mit RPC auf dem Standardport benötigt.

Ich hoffe es hilft.

Sind RPC und rpcport gleich?
rpcist Remoteprozeduraufruf. Es hat eine Reihe von Eigenschaften wie aktivieren/deaktivieren, die zu überwachende Adresse und den abzuhörenden Port (die rpcport).