Как крупномасштабная платформа для торговли криптовалютами, такая как Binance или Bittrex, отслеживает перевод ETH и токенов в каждый свой аккаунт с течением времени?

Я написал простой код с помощью 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. Как насчет этого? Или любой открытый источник, чтобы порекомендовать?

Ответы (1)

Биржи не проводят транзакции между учетными записями блокчейна. Кроме того, транзакции даже не видны в блокчейне. Если вы покупаете монету A за монету B, биржа просто перетасовывает числа внутри своих собственных баз данных, и ничего не публикуется в блокчейне. Это имеет смысл с точки зрения ресурсов: изменение нескольких значений базы данных намного дешевле и быстрее, чем публикация транзакций в блокчейне.

Теоретически баланс токенов ERC20 отслеживается только в рамках контракта токена. Но когда вы обмениваете токены на бирже, это тоже просто перетасовка чисел в их базах и согласно блокчейну токены никогда никуда не перемещаются.

Корректные транзакции публикуются только тогда, когда вы выводите/вносите активы с биржи. В противном случае все, чем владеет биржа (монеты и токены), просто хранится в их собственных кошельках.

Возможно, мой вопрос немного сбивает с толку. На самом деле, я просто хочу знать, как эта крупная торговая платформа может обнаруживать или принимать депозиты от своих клиентов в режиме реального времени. Пример кода работает как прослушиватель блоков и правильно отслеживает каждую транзакцию депозита на ожидаемых . Но похоже, что нужно много накладных расходов, чтобы продолжать мониторинг. Есть ли альтернатива дешевому способу? Или те торговые сервисы, Binance, Bittrex просто для того, чтобы построить мощный сервер для этого.
Ах, да, извините, я неправильно истолковал ваш вопрос. Тогда мой ответ уже не так актуален, но и на ваш реальный вопрос у меня нет ответа.