Heim > Technologie-Peripheriegeräte > IT Industrie > Qualitätsdscheidungscode mit Openzeppelin und Freunden

Qualitätsdscheidungscode mit Openzeppelin und Freunden

William Shakespeare
Freigeben: 2025-02-16 11:20:10
Original
315 Leute haben es durchsucht

openzeppelin: Ein leistungsstarkes Instrument, um die Sicherheit von Ethereum -Smart Contracts zu gewährleisten

Quality Solidity Code with OpenZeppelin and Friends

Kernpunkte

  • Openzeppelin bietet Ethereum -Entwicklern ein wertvolles Toolsatz, das sichere und zuverlässige Soliditätscode -Muster und intelligente Vertragsmodule enthält, die zum Standard -Standard -Standard geworden sind und einfach durch Trüffel eingesetzt werden können.
  • Die Openzeppelin -Bibliothek enthält eine Vielzahl von Verträgen für die Veröffentlichung von Token auf der Ethereum -Plattform, einschließlich ERC20-, ERC721- und ERC827 -Token. Es bietet außerdem eine Reihe von Crowdfunding -Verträgen für erste Token -Angebote (ICOs) mit verschiedenen Funktionen wie Aufzeichnungskäufen, Lieferung von Token und Weiterleitungen von ETH -Fonds.
  • Zeppelinos ist eine dezentrale Tool- und Serviceplattform für die Entwicklung und Verwaltung sicherer Smart Contract -Anwendungen. Es verspricht, dass Entwickler die Variabilität ihres bereitgestellten Code im Upgrade -Modus auswählen können und so die Unveränderlichkeit, die in Smart Contracts, die in Ethereum bereitgestellt wurden, inhärent sind.
  • TRUFFS -Framework ist die Entwicklungsumgebung, das Testrahmen und die Asset -Pipeline von Ethereum. Es enthält Trüffelboxen, d. H. Boilerplate, die Front-End-JavaScript-Code, Soliditätsverträge und Workflow-Dienstprogramme enthält. Tokenmarket und Consensys sind auch bekannte Tools für die Verwaltung von Token-Verkauf und die Bereitstellung von Smart Contract Best Practices.
Das Computing von

Ethereum muss auf allen Knoten im Netzwerk repliziert werden, sodass sein Computing teuer und ineffizient ist (tatsächlich besagt der GitHub -Entwickler -Dokumentation von Ethereum, dass wir nicht erwarten sollten, dass Ethereum 1999 im Jahr 1999 überschreitet. Mobiltelefon).

Daher ist die Sicherheit der Ethereum Virtual Machine (EVM), d. H. Die Sicherheit von intelligenten Verträgen, die auf der Ethereum -Blockchain eingesetzt werden, von entscheidender Bedeutung. Alle Fehler können tatsächliche wirtschaftliche Verluste verursachen - ob es durch schlechte Vertragscodes oder -verluste verursacht wird, die durch Hacker verursacht werden, die Vertragsanfälligkeiten wie den berüchtigten Dao -Hack ausnutzen, der zur Trennung der Gemeinschaft führte und die klassische Ethereum -Blockchain hervorbrachte.

Die Vollständigkeit und eine Reihe anderer Designentscheidungen machen Ethereum leistungsfähiger und komplexer, zahlen aber auch den Preis. Der Reichtum von Ethereum macht es anfälliger für Fehler und Hacking.

Was schlimmer ist, dass in Sethereum eingesetzte intelligente Verträge nicht geändert werden können. Blockchain ist eine unveränderliche Datenstruktur.

In diesem Artikel wird die Sicherheit von intelligenten Verträgen und das Ökosystem von Tools und Bibliotheken untersucht, die uns helfen, sichere intelligente Verträge zu schreiben.

Schauen wir uns einige erstaunliche Tool -Upgrades an, die wir sofort verwenden können, um die besten Praktiken der Soliditätsumgebung zu nutzen.

AIDS

Eines der coolsten Werkzeuge für Ethereum -Entwickler ist die Openzeppelin -Bibliothek. Es ist ein Framework, das viele sichere und zuverlässige Soliditätscode -Muster und intelligente Vertragsmodule enthält. Die Autoren selbst sind Soliditätsprüfer und Berater, bei denen Sie Prüfungsberichte von Drittanbietern zu diesen Modulen lesen können. Manuel Araoz von Zeppelin Solutions, einem in Argentinien ansässigen Unternehmen, skizziert die wichtigsten Soliditätssicherheitsmuster und Überlegungen.

Openzeppelin ist zum Branchenstandard für wiederverwendbare und sichere Open -Source -Soliditätscode (MIT) geworden, der problemlos mit Trüffel bereitgestellt wird. Es besteht aus intelligenten Verträgen, die in unseren Verträgen, die nach der Installation von NPM installiert wurden, einfach importieren und verwendet werden können.

Quality Solidity Code with OpenZeppelin and Friends

TRUFFS -Framework veröffentlicht ein Tutorial zur Verwendung von Openzeppelin mit Trüffel und Ganache.

Diese Verträge sollen importiert werden, und ihre Methoden sollen auch bei Bedarf abgedeckt werden. Die Datei selbst sollte nicht geändert werden.

ICO -Modus

Die Openzeppelin -Bibliothek enthält eine Reihe von Verträgen für die Veröffentlichung von Token auf der Ethereum -Plattform - für ERC20 -Token, darunter basicoken -Verträge, Burnabletokens, CapeTTokens (mintable Token mit festen Kappen), Mintabletokens, PausableLetokens (Token -Transfers können aufgestellt werden). Es gibt auch Tokenvesting (ein Vertrag, der seinen Token -Saldo nach und nach wie ein typischer Ausübungsplan mit Klippenperioden und Ausübungsperioden freigeben kann) und so weiter.

Es gibt auch einige Verträge für ERC721 -Token (oder unersetzliche einzigartige Token der Typ -Kryptokittien).

enthält auch den ERC827 -Token -Vertrag, mit dem beim Handel mit Token Daten gesendet werden.

Es gibt auch einige Crowdfunding -Verträge - Verträge für erste Token -Angebote. Diese Verträge können Einkäufe aufzeichnen, Token an Käufer liefern/ausstellen. Es gibt auch einige Funktionen für die Überprüfung und Verarbeitung von Token -Einkäufen.

endgültiger Vertrag ermöglicht es, eine bestimmte Logik nach dem Verkauf auszuführen. Nach der Verbreitung ermöglicht es, die Abhebungen bis zum Ablauf des Crowdfunding zu erfrieren. RefundableCrowdsale ist eine Verlängerung des Crowdsale -Vertrags, der Finanzierungsziele hinzufügt, und die Möglichkeit, dass Benutzer eine Rückerstattung erhalten, wenn das Ziel nicht erreicht wird.

Der zerstörbare Vertrag kann vom Eigentümer zerstört werden und alle Mittel werden an den Eigentümer gesendet. Es gibt auch einige Verträge, um die Verlust der Unteraufträge zu erreichen.

Openzeppelin bietet viele AIDS und Versorgungsunternehmen für ICO-zum Beispiel einen Vertrag, mit dem ERC20-Token anstelle von ETH an eine ICO-Adresse gesendet werden können. Ein vererbbarer Vertrag ermöglicht die Übertragung von Eigentum an einen anderen Eigentümer unter bestimmten Umständen. Der eigene Vertrag hat eine Eigentümeradresse und bietet grundlegende Autorisierung/Autorisierung und Eigentümerübertragung.

RBAC-Verträge bieten ein rollenbasiertes Dienstprogramm zur Zugriffskontrolle. Wir können unterschiedlichen Adressen unterschiedliche Rollen zuweisen, und es gibt keine Begrenzung für die Anzahl der Rollen.

Zeppelin bietet auch ein Beispiel für das Crowdfunding -Startup -TRUFF -Projekt, das nicht geprüft wurde. Daher ist es am besten, es als Grundierung für die Verwendung von Openzeppelin zu verwenden. Es macht es einfach, Crowdfunding und Token schnell zu beginnen.

Zeppelinos

Quality Solidity Code with OpenZeppelin and Friends

Zeppelinos ist eine Open Source, eine dezentrale Tool- und Serviceplattform, die auf EVM basiert, um intelligente Vertragsanwendungen sicher zu entwickeln und zu verwalten.

In der Tat ist dies die Middleware -Ebene über EVM, die einen Schritt weiter als das aktuelle Openzeppelin -Framework geht. Zeppelin -Lösungen verspricht hier, dass Entwickler die Variabilität ihres bereitgestellten Codes über den Upgrade -Modus auswählen können. Diejenigen, die intelligente Verträge für EVMs schreiben, wissen, dass ein Problem/eine Beschränkung die Unveränderlichkeit von Einsatzverträgen ist: Sobald Sie die Blockchain eingeben, kann der Vertrag nicht geändert werden. Das ist einer der Gründe, warum das Versprechen von Zeppelinos so attraktiv ist.

Um den Vertrag zu "aktualisieren", müssen bisher zwei Verträge eingesetzt werden - einer als Proxy mit einer Schnittstelle und die andere als Implementierung. Die Funktion des Proxy wird aufgerufen und die Anfrage an die Implementierung weitergeleitet. Wenn Änderungen erforderlich sind, wechseln Sie die Implementierung im Proxy (Neupositionierung einer anderen Implementierung und die Option, die ursprüngliche Implementierung mit der Selbstmordfunktion auszuschalten), und die neue Implementierung wird nahtlos aktiviert.

Wir freuen uns auf die zukünftige Einführung von Zeppelinos durch die Gemeinschaft. Zeppelin Solutions hat einige nicht triviale Teilnehmer wie OpenBazaar, District0x, Storj.io erwähnt und verwenden Zeppelinos.

Quality Solidity Code with OpenZeppelin and Friends

Trüffelboxen

TRUFFS -Framework ist die Entwicklungsumgebung, das Testrahmen und die Asset -Pipeline von Ethereum. Es ist das vollständigste Werkzeugsatz und der am häufigsten verwendete Werkzeugsatz unter Ethereum -Entwicklern. Das TRUFFL-Ökosystem umfasst viele Trüffelboxen-Boiler, die Front-End-JavaScript-Code, Soliditätsverträge und Workflow-Dienstprogramme wie Boilerplate-Webpackprojekte mit ihren Toolsets wie Migration, Testen, Erstellen von Pipelines und mehr enthalten. Trüffelboxen können einen kompletten Starter Dapp enthalten.

Einige offiziell unterstützte Boxen umfassen:

  • Nieselregen: Ein Satz von React/Redux-basierten Front-End-Bibliotheken, um das Erstellen von DAPP-Front-Ends zu vereinfachen.
  • React-Box: Eine einfache Anwendung zur Interaktion mit intelligenten Verträgen, beginnend mit einer React Front-End-Anwendung.
  • React Authbox: Bietet eine Reihe von Komponenten, die für die Authentifizierung erforderlich sind, die von intelligenten Verträgen unterstützt werden.
  • react-uport: Diese Authentifizierungsbox verbindet das Front-End mit dem UPORT-Blockchain-Authentifizierungssystem.
  • Es wird auch das oben erwähnte Webpack -Projektvorlagefeld erwähnt.

Community-geschaffene Boxen bringen auch Kesselplatten in den Integrationsvertrag für mobile Anwendungen/Status IM oder bieten Angular und Vue.js Boilerplate usw. bereit, usw.

Diese Boxen sind in TRUFFLE integriert, sodass wir sie starten können, indem wir Befehle wie TRUFFE UNBOX React ausführen. Dadurch wird das Box reagiert und die Abhängigkeiten lokal installiert.

tokenmarket

Tokenmarket ist ein weiteres Unternehmen, das Soliditätsverträge und Tools für die Verwaltung von Token Sales/ICOs veröffentlicht hat. Es handelt sich um eine in Gibraltar registrierte Gesellschaft und tätig in ICO Consulting Business. Bei der Crypto World von Berlin 2018 wurde der "Beste ICO Consultant" ausgezeichnet.

Laut dem ICO -Repository von

Tokenmarket in GitHub besteht ein der Konstruktionsziele/-prinzipien darin, bestehende Openzeppelin -Verträge zu verwenden oder zu erstellen und es als Goldstandard für Soliditätsverträge zu nennen. Daher basiert der größte Teil der ICO-Code-Basis von Tokenmarket auf Openzeppelins Codebasis und baut dann weiter darauf auf (indem er objektorientiert erbt).

tokenmarket regelmäßig (Versuch), mit seiner vorgelagerten Code -Basis Openzeppelin synchron zu bleiben. Es fügt jedoch auch mehr Inhalte hinzu, wie z. B.

  • Amltoken -Vertrag: Dies gibt dem Eigentümer die Möglichkeit, das Token vom Teilnehmer vor dem Token zu berücksichtigen, wenn der Teilnehmer nach einem Long AML -Prozess nicht bestanden wird.
  • Gnosis-Brieftasche: Grundsätzlich handelt es sich um eine mehrseitige Brieftasche, bei der mehrere Teilnehmer einen Konsens über bestimmte Transaktionen erreichen müssen.
  • Zentralisierte Ausgabe von Token -Verträgen.
  • kyccrowdsale: Ein Vertrag, an dem nur nicht anonyme Investoren teilnehmen dürfen.
  • Crowdfunding -Vertrag neu gestartet: Dadurch werden frühere Crowdfunding wiederhergestellt und Änderungen an bestimmten Parametern ermöglicht.
  • Meilensteinpreis: Dieser Vertrag bietet Meilensteinpreise und Pre-ICO-Transaktionen.

EVM ist vervollständigt, sodass alle diese verschiedenen Verträge trotz des Code-Code-Codes im Repository, über den wir hier diskutieren, nicht einmal die vollständige Funktionalität entziehen können. Wenn das System (Ethereum) überleben kann und weiterhin wettbewerbsfähig ist und es genügend Personen im Netzwerk gibt, können wir eine höhere Vielseitigkeit der Probleme erwarten, die diese Blockchain -Verträge zu lösen versuchen.

Konsensys

Consensys Ventures ist ein Schweizer Risikokapitalunternehmen, das sich als Risikokapitalunternehmen im dezentralen Raum positioniert - insbesondere im Ethereum -Raum. Zusätzlich zu den anderen Ressourcen, die sie für geschützte Unternehmen zur Verfügung stellen, haben sie eine kurze Zusammenstellung von Best Practices von Ethereum Smart Contract erstellt. Dies ist zwar kein streng Code, aber es enthält immer noch viele Beispiele für die Vor- und Nachteile des Soliditätscode.

Es konzentriert sich auf die besten Sicherheitspraktiken von Solidity Smart Contracts.

Die vollständige Liste der Themen liegt außerhalb des Rahmens dieses Artikels, da die Ressource sehr umfassend ist und sogar eine Lese-Away-Erinnerung an Smart Contract-Entwickler, die Sie beim Schreiben von Software für EVMs berücksichtigen können. Dies gilt insbesondere dann, wenn jemand ein Programm von Grund auf neu schreibt (nicht auf fertige und bewährte Code wie Openzeppelin).

Einige Artikel beinhalten externe Anrufe, die Änderungen nach externen Aufrufen vermeiden, Fehler in externen Aufrufen behandeln, das Ziehen priorisieren, anstatt nach externen Aufrufen zu drängen, die Kompromisse zwischen abstrakten Verträgen und Schnittstellen zu verstehen und nicht davon auszugehen, dass Verträge Null verwendet werden Bilanzierung, Unterscheidung zwischen Funktionen und Ereignissen, Überlegungen zur Erbschaft, Warnungen vor Zeitstempelabhängigkeiten und Spielbarkeit solcher Strukturen (z. B. mit Blöcken) - und vielen anderen solchen Tricks mit vielen Code -Beispielen.

Anschließend sind tokenspezifische Warnungen, Warnungen im Zusammenhang mit Token -Standards, Software -Engineering -Techniken, Sicherheitstools - für statische Analysen, Tests, Codeprüfer usw.

Sie listeten auch bekannte Angriffe auf, einschließlich derjenigen, die externe Code und Verträge anrufen, Funktionen, die in diesem Fall wiederholt aufgerufen werden können, Wiedereintrittsprobleme, Kreuzfunktionsbedingungen, bei denen sie eine Reihe von Problemen analysierten, einige dieser Probleme manifestieren sich im Dao Hacking Vorfall.

Sie erwähnten ferner Transaktionssortierabhängigkeiten, Zeitstempelabhängigkeiten, ganzzahlige Überlauf und Unterströmung, verschiedene Arten von DOS-Angriffsmöglichkeiten/Punkten, z. veraltete Angriffe. Lesen Sie unbedingt ihre Dokumentation.

Schlussfolgerung

In dieser Einführung in das Ökosystem stellen wir einige der verfügbaren Ressourcen für intelligente Verträge ein, die auf virtuellen Ethereum -Maschinen gut geschrieben sind, die für die Produktion verwendet werden können. Dies beinhaltet die Wiederverwendung von geprüften und verifizierten Code (Openzeppelin behauptet, dass mehr als 4 Milliarden US-Dollar in Kryptowährung ausgeführt wird) und das Erlernen des Schreibens Ihrer eigenen sicheren, produktionsbereiten Software.

Wir sind uns sehr sicher, dass diese Liste nicht vollständig ist. Haben wir etwas erwähnenswert verpasst? Bitte sagen Sie es uns!

häufig gestellte Fragen zu Solidität und Openzeppelin

Was ist die Hauptverwendung von Openzeppelin in Solidität?

Openzeppelin ist eine Bibliothek für die sichere Entwicklung intelligenter Vertragsentwicklung. Es bietet Implementierungen von Standards wie ERC20 und ERC721, die Sie so einsetzen können, oder skalieren Sie Ihre Anforderungen sowie Soliditätskomponenten für den Bau von kundenspezifischen Verträgen und komplexeren dezentralen Systemen. Openzeppelin hilft, Blockchain-Projekte vor gemeinsamen Bedrohungen zu schützen, indem er getestete und mit Community-additierte Code bereitgestellt wird.

Wie sorgt Openzeppelin die Sicherheit von intelligenten Verträgen?

Openzeppelin stellt die Sicherheit von intelligenten Verträgen sicher, indem sie eine getestete, wiederverwendbare und sichere Codebasis bereitstellt. Die Openzeppelin Contracts -Bibliothek ist die am häufigsten verwendete Lösung bei der Entwicklung von Ethereum -Smart Contracts. Es ist eine sichere und zuverlässige Code -Ressource aus, die Entwickler wiederverwenden können, wodurch der Umfang potenzieller Schwachstellen in einem einzigen intelligenten Vertrag verringert wird.

Wie aktualisiere ich meinen Smart -Vertrag mit Openzeppelin?

Openzeppelin bietet Upgrade -Plugins, mit denen Sie intelligente Verträge aktualisieren können. Diese Plugins bieten eine einfache und sichere Möglichkeit, intelligente Verträge im Laufe der Zeit zu verbessern, um neue Funktionen hinzuzufügen oder Fehler zu beheben. Diese Plugins sind so konzipiert, dass sie mit Trüffel- und Hardhat -Entwicklungsumgebungen arbeiten.

Welche Rolle spielt Trüffel in Openzeppelin?

Trüffel ist die Entwicklungsumgebung, das Testrahmen und die Asset -Pipeline von Ethereum. Es spielt eine entscheidende Rolle in Openzeppelin, indem es eine Testumgebung für intelligente Verträge bereitstellt. Die Tools -Suite von TRUFFL hilft Entwicklern dabei, in einer einheitliche Umgebung intelligente Verträge zu erstellen, zu kompilieren, zu entfernen und zu testen.

Wie kann man Openzeppelin mit Trüffel verwenden?

Um Openzeppelin mit Trüffel zu verwenden, müssen Sie beide in Ihrem Projekt installieren. Sobald die Installation abgeschlossen ist, können Sie den Openzeppelin -Vertrag in Ihren eigenen Vertrag importieren und nach Ihren Anforderungen erweitern. Trüffel wird verwendet, um Ihren Vertrag zu kompilieren und bereitzustellen.

Was sind die Vorteile der Verwendung von Openzeppelin für mein Soliditätsprojekt?

Openzeppelin bietet einen Eckpfeiler für Stabilität und Sicherheit für Ihr Soliditätsprojekt. Es bietet eine getestete, wiederverwendbare und sichere Codebasis, mit der Sie Ihre Projekte vor gemeinsamen Bedrohungen schützen können. Es bietet auch Tools zum Upgrade intelligente Verträge, sodass Sie neue Funktionen hinzufügen oder Fehler im Laufe der Zeit beheben können.

Wie kann man zur Openzeppelin -Community beitragen?

Die Openzeppelin -Community begrüßt den Beitrag der Entwickler. Sie können einen Beitrag leisten, indem Sie Fehler melden, neue Funktionen vorschlagen oder Code schreiben. Alle Beiträge werden von der Community geprüft und helfen, die Sicherheit und Funktionalität von Openzeppelin zu verbessern.

Kann ich Openzeppelin für andere Blockchain -Projekte als Ethereum verwenden?

Während Openzeppelin hauptsächlich für die Verwendung in Ethereum konzipiert ist, können viele seiner Prinzipien und Bibliotheken auf andere Blockchain -Projekte angewendet werden. Spezifische Implementierungsdetails können jedoch je nach der von Ihnen verwendeten Blockchain -Plattform variieren.

Wie handelt es sich bei Openzeppelin mit ERC20- und ERC721 -Standards?

Openzeppelin bietet Implementierungen der ERC20- und ERC721 -Standards, die Sie so bereitstellen können, oder skalieren Sie Ihre Anforderungen. Diese Implementierungen sind sicher und zuverlässig und werden getestet und mit der Gemeinschaft geprüft.

Was sind die Alternativen für Openzeppelin, die durch Solidität entwickelt wurden?

Während Openzeppelin eine beliebte Wahl für die Soliditätsentwicklung ist, sind andere Bibliotheken und Frameworks verfügbar. Dazu gehören Trüffel, Hardhat und Ether.js. Jeder hat seine eigenen Stärken und Schwächen, und die beste Wahl hängt von Ihren spezifischen Bedürfnissen und Vorlieben ab.

Das obige ist der detaillierte Inhalt vonQualitätsdscheidungscode mit Openzeppelin und Freunden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage