Ich habe einen einfachen Code mit web3js geschrieben, um die Transaktion einer Adresse/eines Kontos in Echtzeit zu verfolgen. Es funktioniert, aber ich denke, es hat eine schlechte Leistung oder könnte zu viel CPU-Ressourcen verbrauchen.
let filter = web3.eth.filter("latest");
filter.watch(function(error, result) {
if (!error) {
//tracking start in 12 blocks earlier .
var earlierNumber = web3.eth.getBlock(result).number - 12;
var confirmedBlock = web3.eth.getBlock(earlierNumber ) ;
if (confirmedBlock.transactions.length > 0) {
confirmedBlock.transactions.forEach(function(tx) {
if ( tx.to == address ) {
var depositAmount = web3.fromWei(tx.value.toNumber(),
"ether" )
console.log("address: " +address+ " deposit amount: "+depositAmount+ " ETH." ) ;
}
})
}
}
})
Wie könnten diese großen Handels- oder Austauschplattformen große Mengen an Kontotransaktionen genau verfolgen? Ich finde viele gute Projekte wie MetaMask-Token-Tracker auf Git. Wie wäre es? Oder eine Open Source zu empfehlen?
Die Börsen führen keine Transaktionen zwischen Blockchain-Konten durch. Außerdem sind die Transaktionen in der Blockchain nicht einmal sichtbar. Wenn Sie Münze A mit Münze B kaufen, mischt die Börse nur Zahlen in ihren eigenen Datenbanken und nichts wird in der Blockchain veröffentlicht. Dies ist ressourcentechnisch absolut sinnvoll: Das Ändern einiger Datenbankwerte ist viel billiger und schneller als das Veröffentlichen von Transaktionen in einer Blockchain.
Theoretisch werden ERC20-Token-Guthaben nur innerhalb des Token-Vertrags verfolgt. Aber wenn Sie Token in einer Börse austauschen, werden auch nur Zahlen in ihren Datenbanken gemischt, und gemäß der Blockchain bewegen sich die Token nirgendwo hin.
Korrekte Transaktionen werden nur veröffentlicht, wenn Sie Vermögenswerte von der Börse abheben/einzahlen. Ansonsten wird alles, was die Börse besitzt (Coins & Token), nur in ihren eigenen Wallets aufbewahrt.
Kimmy
Lauri Peltonen