Elements 22.1.1: Optimieren Sie Ihren Node für anspruchslose DIY-Hardware
Elements

Elements 22.1.1: Optimieren Sie Ihren Node für anspruchslose DIY-Hardware

Blockstream Team

Die Liquid-Community fordert seit langem einen leichteren Elements-Node-Client für eine bessere Kompatibilität mit billigerer, handelsüblicher DIY-Hardware. Elements 21.1.1 beginnt dieses Versprechen einzulösen, indem es die Block-Header von Liquid optimiert, und wir planen, die Node-Effizienz in zukünftigen Versionen noch weiter zu optimieren.

Unter 21.1.1 zeigen interne Benchmarks eine Reduzierung der Speichernutzung um mehr als 50 %, wenn  liquidv1 ausgeführt wird. Durch das Trimmen einiger der größeren Header-Felder, die im Speicher gehalten werden, konnten wir den Overhead reduzieren. Mit diesen neuen Optimierungen sind wir zuversichtlich, dass Benutzer jetzt den gesamten Bitcoin-Stack (d. h. Bitcoin, Core Lightning und Liquid-Knoten) gleichzeitig auf wenig mehr Leistung als einem 8-GB-Raspberry-Pi nutzen können.

Elements 22.1.1 ist außerdem vollgepackt mit Wartungsupdates und kleineren Fixes, unter anderem:

  • Korrekte Hilfemeldungen für den getsidechaininfo RPC und testproposedblock
  • Verschleierung von Mainchain RPC Feldern in den Logs
  • Bereitstellung von Regtest-Netzwerken mit Pay-to-Witness-Script-Hash (P2WSH) Peg-Ins
  • Unterlauf behoben, wenn Blöcke den Headern vorauseilen

Das Team nahm auch mehrere Änderungen an Assets über das Elements-qt vor, einschließlich der Einstellung, dass „Verfügbares Guthaben verwenden“ ein ausgewähltes Asset beibehält, anstatt standardmäßig auf L-BTC zurückzugreifen.

Um mehr über die Feinheiten der Version zu erfahren, sehen Sie sich das vollständige Änderungsprotokoll an und sagen Sie uns, was Ihnen gefällt oder was wir verbessern könnten, indem Sie uns auf der Entwicklerseite der Build On L2 (BOL2)-Community kontaktieren.

Elements optimieren (es ist alles in den Headern)

Wir wollten die Optimierungen näher erläutern, die die Reduzierung des Speicher-Overheads in Elements 21.1.1 ermöglichten.

Als Teil des von Bitcoin Core geerbten Verhaltens werden alle Block-Header (Block-Metadaten) in Elements ständig im Speicher gehalten. In Bitcoin sind diese Header relativ klein, sodass sie keine große Wirkung haben, aber in Elements ist der Header aufgrund der schnelleren Blockzeiten von einer Minute, DynaFed und Blocksignaturinformationen viel größer. Derzeit enthält die Liquid-Blockchain (liquidv1) etwa die 3-fache Anzahl von Blöcken in Bitcoin.

Unter den neuen trim_headers-Parametern (siehe PR #1190) haben wir einige der größeren Header-Felder entfernt, um den gesamten Speicher-Overhead zu reduzieren, aber erst, nachdem eine ausreichende Blockzeit vergangen ist, da sie dann wahrscheinlich nicht mehr benötigt werden. Dies hat einen besonderen Effekt während IBD (Initial Block Download), da normalerweise (Bitcoin- und nicht-trim_headers-Modus) Header und Blöcke unabhängig voneinander heruntergeladen werden, mit der einzigen Anforderung, dass Header den Blöcken voraus sind, damit Blöcke validiert werden können, wenn sie ankommen; Dies ist nicht wirklich eine Option für den trim_headers-Modus, weil entweder a) Sie den Block trimmen und dann nicht validieren können, oder b) Sie nicht trimmen und so viel Speicher wie zuvor verwenden. Unsere Lösung besteht darin, Header und Blöcke mehr im "Lockstep" herunterzuladen, was bedeutet, dass Header den Blöcken nicht mehr so weit vorauseilen können wie früher.

Indem wir einige dieser nicht benötigten Felder aus den im Speicher gehaltenen Headern kürzten, konnten wir den Overhead reduzieren. Die Daten auf der Festplatte bleiben jedoch unverändert, sodass Benutzer frei hin- und herwechseln können, ob sie die Parameter haben oder nicht.

Speicherverbrauch nach der IBD-Synchronisierung bei Tests, die mit 8 GB RAM, 4 GB Swap-VM ausgeführt werden.

Treten Sie BOL2 bei und schlagen Sie neue Funktionen vor

Die Elements-Plattform bleibt ein kostenloser Open-Source-Download, mit dem jeder seine eigene Sidechain-Lösung auf Basis von Bitcoin einrichten kann. Seit der ersten Veröffentlichung haben wir neue Opcodes und Funktionen wie vertrauliche Transaktionen und ausgegebene Assets hinzugefügt. Einige dieser Upgrades auf Elements wurden sogar auf Bitcoin implementiert, darunter OP_CSV und Segregated Witness (SegWit). Simplicity, eine Smart-Contracting-Sprache der nächsten Generation, die später dieses Jahr auf Liquid veröffentlicht werden soll, ist ein weiteres mögliches späteres Upgrade für Bitcoin.

Wir möchten dieses Vermächtnis fortsetzen und freuen uns über jedes Feedback der Bitcoin-Community zu neuen Opcodes und Funktionen, die Liquid hinzugefügt werden können. Die Community-Plattform Build On L2 (BOL2) ist der beste Weg, um das Engineering-Team zu erreichen und mit anderen Liquid-Power-Usern in Kontakt zu treten, um neue Ideen und Projekte zu diskutieren.

Im Laufe des Tages veranstaltet Liquid Engineering Manager Pablo Greco eine Live-AMA zu BOL2 und beantwortet alle Fragen, die die Community zur Version 22.1.1 haben könnte.

Wir freuen uns auf Ihre Fragen und den Austausch vor Ort!

If you have specific preferences, please, mark the topic(s) you would like to read: