Das Kontosystem ist veraltet. Wie können wir nun ein "Von-Konto" festlegen, wenn wir die Funktion "sendmany" verwenden?

Aktuell bin ich mit einem Problem durch das Update von Bitcoin Core konfrontiert worden. Wie Sie vielleicht wissen, hat Bitcoin Core im letzten Update das Konzept des Kontos, das zu jedem Knoten gehört, als veraltet markiert. Daher kann ich den Parameter „Von Konto“ oder „Von Adresse“ für die Verfolgung des Münzflusses nicht mehr festlegen, wenn ich die Bitcoin Core API-Methoden (dh sendmany, sendfrom, sendtoaddress) verwende, um Bitcoin-Kryptowährungs-Assets zu steuern. Das Problem rührt von hier her. Ich habe einen Dienst als eine Art Bitcoin-Hinterlegungssystem implementiert und darin einen einzelnen Bitcoin-Core-Knoten betrieben. Jeder Benutzer meines Dienstes nimmt jede Adresse, und die Benutzeradressen gehören zu jedem einzelnen Konto, und die Konten gehören zum Bitcoin Core-Knoten meines Dienstes. Aber da das Konto im letzten Update veraltet ist, Jetzt darf ich unter meinem Serviceknoten keine bestimmte Benutzeradresse angeben und das Asset darin verwalten. Das Problem ist zum Beispiel, wenn ich die sendmany-Methode aufrufe, um BTC 1 aus meinem Dienstknoten heraus zu senden, würde das in den Benutzeradressen meines Dienstes verteilte Asset zufällig reduziert und das gesamte Reduktionsvolumen sollte BTC 1 betragen. Mit anderen Worten, ich kann die BTC 1 sicher nicht von der Zielbenutzeradresse extrahieren, deren Besitzer unseren Service hätte nutzen sollen, um etwas im Wert von BTC 1 zu bezahlen, und die Last des BTC-Abflusses wird für alle geteilt. Da die sendfrom-Methode ebenfalls veraltet ist, kann ich außerdem keinen Benutzer meines Dienstes angeben, um sein oder ihr BTC-Vermögen zu verwalten, das in der angegebenen Wallet-Adresse gespeichert ist. Die Lösung, die ich jetzt in Betracht ziehe – und vorübergehend verwende – ist, ein Datenbanksystem einzurichten, um den Zu- und Abfluss des Knotens und des Benutzer-Assets zu verwalten. dh ich kann jeden Benutzer und sein Vermögen in der Wallet-Adresse nur über die Datenbank (z. B. mySQL) spezifizieren und verwalten, und wenn ein anderer Teilnehmer außerhalb meines Dienstes unser kleines Dienstnetzwerk findet, würde er nur als ein einziger Knoten identifiziert werden , das ein in einem Speicher gespeichertes Asset-Paket steuert. Ich meine, mein Serviceknoten soll eine minimierte Bitcoin-Bank für den Service sein. Ich möchte Sie jedoch um Ihre Hilfe bitten, damit ich einen anderen Weg finden kann, jeden Benutzer zu identifizieren und das Asset in Bezug auf jede Adresse zu verwalten. Ich möchte nicht, dass meine kleine Datenbank die einzige Dominanz für die Verwaltung der Benutzerinformationen ist, da die Implementierung einer solchen Datenbank zu einem ernsthaften Sicherheitsproblem führen könnte. Ich möchte jeden Benutzer, die Adresse und das darin vorhandene Asset nur über das Bitcoin Core-Protokoll und die in RPC definierte API identifizieren. Ich kann jeden Benutzer und sein Vermögen in der Wallet-Adresse nur über die Datenbank (z. B. mySQL) angeben und verwalten, und wenn ein anderer Teilnehmer außerhalb meines Dienstes unser kleines Dienstnetzwerk findet, wird er nur als ein einziger Knoten identifiziert und kontrolliert ein Asset-Paket, das in einem Speicher gespeichert ist. Ich meine, mein Serviceknoten soll eine minimierte Bitcoin-Bank für den Service sein. Ich möchte Sie jedoch um Ihre Hilfe bitten, damit ich einen anderen Weg finden kann, jeden Benutzer zu identifizieren und das Asset in Bezug auf jede Adresse zu verwalten. Ich möchte nicht, dass meine kleine Datenbank die einzige Dominanz für die Verwaltung der Benutzerinformationen ist, da die Implementierung einer solchen Datenbank zu einem ernsthaften Sicherheitsproblem führen könnte. Ich möchte jeden Benutzer, die Adresse und das darin vorhandene Asset nur über das Bitcoin Core-Protokoll und die in RPC definierte API identifizieren. Ich kann jeden Benutzer und sein Vermögen in der Wallet-Adresse nur über die Datenbank (z. B. mySQL) angeben und verwalten, und wenn ein anderer Teilnehmer außerhalb meines Dienstes unser kleines Dienstnetzwerk findet, wird er nur als ein einziger Knoten identifiziert und kontrolliert ein Asset-Paket, das in einem Speicher gespeichert ist. Ich meine, mein Serviceknoten soll eine minimierte Bitcoin-Bank für den Service sein. Ich möchte Sie jedoch um Ihre Hilfe bitten, damit ich einen anderen Weg finden kann, jeden Benutzer zu identifizieren und das Asset in Bezug auf jede Adresse zu verwalten. Ich möchte nicht, dass meine kleine Datenbank die einzige Dominanz für die Verwaltung der Benutzerinformationen ist, da die Implementierung einer solchen Datenbank zu einem ernsthaften Sicherheitsproblem führen könnte. Ich möchte jeden Benutzer, die Adresse und das darin vorhandene Asset nur über das Bitcoin Core-Protokoll und die in RPC definierte API identifizieren.

Bitte geben Sie mir einen Rat, wenn Sie welche haben.

Aufrichtig,

Antworten (1)

Das Problem ist zum Beispiel, wenn ich die sendmany-Methode aufrufe, um BTC 1 aus meinem Dienstknoten heraus zu senden, würde das in den Benutzeradressen meines Dienstes verteilte Asset zufällig reduziert und das gesamte Reduktionsvolumen sollte BTC 1 betragen. Mit anderen Worten, ich kann die BTC 1 sicher nicht von der Zielbenutzeradresse extrahieren, deren Besitzer unseren Service hätte nutzen sollen, um etwas im Wert von BTC 1 zu bezahlen, und die Last des BTC-Abflusses wird für alle geteilt.

Das hat es von vornherein nie getan. Das "vom Konto" hat nie das getan, was Sie beschrieben haben; es hat keine Münzen von Adressen ausgewählt, die zu diesem Konto gehören. Vielmehr wählte es Münzen aus der gesamten Brieftasche (also "von" allen Konten) aus und die resultierende Transaktion würde sagen, dass es den Saldo des "Vom Kontos" verringerte. Zu keinem Zeitpunkt hatte der Parameter „vom Konto“ Einfluss darauf, welche Coins ausgewählt wurden.

Wenn Sie wirklich eine Trennung der Benutzeradressen wünschen, können Sie die Multiwallet-Funktion verwenden, bei der jeder Benutzer seine eigene Wallet-Datei mit seinem eigenen Schlüsselpool, privaten Schlüsseln, Transaktionen usw. hat.

hast du neben multiwallet noch eine lösung gefunden? Nach dem Update auf v0.18.0 stoßen wir auf mehrere Probleme in Bezug auf Adressguthaben nach einer Sendenachricht ... Empfangen ist kein Problem, da v18.0 sendtoaddress zulässt.
Bitcoin Core hat „Adressguthaben“ nie unterstützt, also was auch immer Sie versuchen, das ist es wahrscheinlich nicht.