Nachdruck von Satoshi Nakamoto in der Link-Community

Massentransfers sind im Solana-Ökosystem ein häufiger Vorgang, insbesondere beim Abwerfen von Token aus der Luft oder beim Senden von Token an mehrere Adressen. Dieses Tutorial zeigt Ihnen, wie Sie Batch-Überweisungen im Solana-Netzwerk durchführen, einschließlich einer Einführung in Kontomodelle, Kosten von Batch-Überweisungen usw.

Solana-Kontomodell

Es gibt drei Arten von Konten in Solana:

  • Datenkonto, das zum Speichern von Daten verwendet wird

  • Programmkonto, das zum Speichern ausführbarer Programme verwendet wird

  • Native Konten beziehen sich auf native Programme auf Solana, wie zum Beispiel „System“, „Stake“ und „Vote“.

Datenkonten sind in zwei Kategorien unterteilt:

  • Alle Konten im System

  • Programmabgeleitetes Konto (PDA)

Die von uns normalerweise verwendete Wallet-Adresse gehört zu allen Konten im System. Wir können mit unserem eigenen privaten Schlüssel signieren, und das System überprüft, ob die Signatur korrekt ist, sodass wir auf das Konto zugreifen können B. Geldtransfers und Kündigungsverträge.

Beziehung zwischen Konten in Solana-Tokens

In der Ethereum-Reihe stellt die Ausgabe eines Tokens einen Smart-Vertrag direkt bereit, und die dem Vertrag entsprechende Adresse ist die Token-Adresse. Aber Solana ist anders.

Das Bild unten zeigt die drei Konten, die Solana-Tokens entsprechen:

In:

Token-Programm: Es handelt sich um ein Programmkonto und ein ausführbares Programm, das offiziell vom Spl-Token bereitgestellt wird.

Mint-Konto: Es handelt sich um ein vom Benutzer über das Token-Programm erstelltes Token-Konto, bei dem es sich um die Token-Minting-Adresse handelt. Dieses Konto speichert die grundlegenden Informationen des Tokens, wie z. B. den Token-Vorrat, die Adresse für Minting- und Einfrierberechtigungen und die Dezimalzahl des Tokens.

Token-Konto: Bezieht sich auf das Token-Konto des Benutzers. Jeder Token-Inhaber verfügt über ein spezifisches Token-Konto, das den Kontostand und die zugehörigen Informationen des spezifischen Tokens des Inhabers aufzeichnet. Alice besitzt beispielsweise sowohl USDT- als auch Slerf-Token. Sie verfügt jeweils über zwei Token-Konten, von denen eines den USDT-Saldo und das andere den Slerf-Saldo aufzeichnet. Das Konto entsteht durch die Verknüpfung der Benutzeradresse und des Token-Kontos.

Wenn wir einen Token an eine Adresse senden, berechnet das Programm tatsächlich zunächst das Token-Konto für den Token unter der Adresse des Benutzers und zeichnet Änderungen in den Kontostandsdaten im Token-Konto auf.

Solana-Kontomiete

Im Solana-Wirtschaftsmodell erfordert die Einrichtung eines Token-Kontos die Zahlung eines bestimmten Betrags an Miete an die Kette. Benutzer können auch ein Token-Konto unter ihrer eigenen Adresse schließen, um die Miete zurückzuerhalten. Beim Recycling müssen sie auf den Wert des Token-Vermögens achten 0, sonst verlieren sie Vermögenswerte.

Wenn eine Solana-Adresse einen bestimmten Token akzeptiert, muss unter der Adresse ein Token-Konto erstellt werden, um Token-Informationen, Kontostand und andere Informationen zu speichern. Wenn der Empfänger kein Token-Konto hat, kann der Absender ein Token-Konto für den Empfänger erstellen.

Die Mietspeichergebühr auf Solana beträgt 0,00000348 SOL pro Byte. Die Wallet-Datengröße beträgt 586 Bytes und die Mietgebühr beträgt etwa 0,002 SOL.

Kosten für den Massentransfer

Durch das Verständnis des oben genannten Kontomodells können wir wissen, wie viel eine Token-Transfer-Transaktion kosten wird und wofür diese Kosten ausgegeben werden.

Wenn wir Slerf-Tokens an 10 Adressen übertragen und 10 den Token nie akzeptieren, betragen unsere Kosten 0,02 Sol zuzüglich der On-Chain-Gebühr für die Übertragung.

Wenn diese 10 Adressen Slerf bereits akzeptiert haben, sind die Übertragungskosten nur eine vernachlässigbare On-Chain-Gebühr.


So überweisen Sie Geld in Stapeln

Wenn Sie mit der Programmierung vertraut sind, können Sie das offiziell von Solana bereitgestellte SDK verwenden. Detaillierte Nutzungsanweisungen und Beispielcode finden Sie in der offiziellen Dokumentation von Solana.

Im Folgenden finden Sie eine detaillierte Einführung in die Verwendung von Tools zur Durchführung von Stapelübertragungen ohne Programmierung. SlerfTools ist die günstigste, schnellste und bequemste One-Click-Toolbox von Solana im gesamten Netzwerk. Sie unterstützt die Ausgabe von Münzen, die Erstellung von Openbook-Markt-IDs und die Schaffung von Raydium-Liquidität und Liquiditätsentzug, Batch-Transaktionen usw.

1. Öffnen Sie zunächst die Batch-Transfer-Seite von SlerfTools:

2. Füllen Sie nach der Verknüpfung des Wallets die Token-Adresse und die Zahlungsadressenliste aus. Die Zahlungsadressenliste kann auch durch Hochladen einer Datei vervollständigt werden.

3. Klicken Sie auf Weiter und die folgende Bestätigungsoberfläche wird angezeigt.

4. Nachdem Sie auf Transaktion senden geklickt haben, ist die Übertragung erfolgreich:

5. Nach erfolgreicher Übertragung werden zwei erfolgreiche Transaktions-Hashes angezeigt. Sie können darauf klicken, um sie im Blockbrowser anzuzeigen.

Es ist zu beachten, dass SlerfTools jeden Transferstapel in einer Transaktion zusammenfasst, um On-Chain-Kosten zu sparen und die On-Chain-Geschwindigkeit zu beschleunigen.
Da Solana darauf abzielt, die Datenübertragung zwischen Knoten zu beschleunigen, ist jede Transaktion auf 1232 Bytes und ihre Größe auf eine MTU-Übertragungseinheit von IPv6 begrenzt. Daher muss die Anzahl der Übertragungen in jedem Stapel begrenzt werden.

Durch mehrere Tests sind wir zu dem Schluss gekommen, dass der optimale Wert für die Anzahl der Übertragungen pro Transaktion ist: Für neue Adressen (d. h. Adressen, die dieses Token noch nicht erhalten haben) umfasst jede Stapelübertragung bis zu 9 Empfangsadressen; (Das heißt, die Adresse, die dieses Token zuvor erhalten hat). Jede Stapelübertragung kann bis zu 19 Empfangsadressen enthalten. Übertragungsversuche oberhalb dieser empfohlenen Anzahl können zum Scheitern führen.

Der Grund, warum es weniger davon gibt, ist der im Artikel erwähnte. Beim Empfang einer Token-Übertragung muss eine Adresse, die diesen Token noch nie erhalten hat, ein Token-Konto erstellen, das einen Teil der Transaktionsgröße beansprucht.