Я написал простой код с помощью web3js для отслеживания транзакций адреса/счета в режиме реального времени. Он работает, но я думаю, что он имеет низкую производительность или может потреблять слишком много ресурсов процессора.
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." ) ;
}
})
}
}
})
Как эти крупномасштабные торговые или биржевые платформы могут точно отслеживать огромные суммы транзакций по счетам? Я нашел много хороших проектов, таких как MetaMask-token-tracker , на Git. Как насчет этого? Или любой открытый источник, чтобы порекомендовать?
Биржи не проводят транзакции между учетными записями блокчейна. Кроме того, транзакции даже не видны в блокчейне. Если вы покупаете монету A за монету B, биржа просто перетасовывает числа внутри своих собственных баз данных, и ничего не публикуется в блокчейне. Это имеет смысл с точки зрения ресурсов: изменение нескольких значений базы данных намного дешевле и быстрее, чем публикация транзакций в блокчейне.
Теоретически баланс токенов ERC20 отслеживается только в рамках контракта токена. Но когда вы обмениваете токены на бирже, это тоже просто перетасовка чисел в их базах и согласно блокчейну токены никогда никуда не перемещаются.
Корректные транзакции публикуются только тогда, когда вы выводите/вносите активы с биржи. В противном случае все, чем владеет биржа (монеты и токены), просто хранится в их собственных кошельках.
Кимми
Лаури Пелтонен