Commit Graph

35 Commits

Author SHA1 Message Date
walker-16 7545acb77e
Feature/handle governor fly event processor (#1436)
* changes in fly component to send governor status events

* split processor in vaaProcessor and governor processor

* add governor processsor v1

* Add endpoint in tx-tracker to calculate txHash for a vaa id

* fly-event-processor integration with new tx-tracker endpoint and refactor

* Add governor vaas endpoint in api

* api, fix amount data type in governor vaas endpoint

* fly-event-processor normalize emitter and txHash

* fly-event-processor fix nodeGovernorVaa id

* fly-event-processor control array not empty in insert/delete many operation

* add index in nodeGovernorVaas collection by vaaId

* add prometheus metrics

* add tx-tracker url for fly-event-processor deployment

* Add sns attributes into sns messages

Co-authored-by: walker-16 <agpazos85@gmail.com>

* fix governor vaa endpoint empty response

---------

Co-authored-by: Fernando Torres <fert1335@gmail.com>
2024-05-31 15:38:21 -03:00
walker-16 b8e3f43333
1301 create a backgroundrecurrent process which checks which duplicate vaas txs actually reached finality on the blockchain (#1359)
* fly-event-processor initial commit

* Handle duplicated vaa event in fly-event-processor
Add deployment for fly-event-processor
Send duplicated vaa event from fly

Co-authored-by: walker-16 <agpazos85@gmail.com>

---------

Co-authored-by: Fernando Torres <fert1335@gmail.com>
2024-05-07 16:38:16 -03:00
ftocal 688a0d0f71
Store duplicate vaas on a secondary collection (#1308)
* Add support to scroll in tx-tracker

* Handle duplicated vaa in fly

Co-authored-by: walker-16 <agpazos85@gmail.com>

* Modify tx-tracker and pipeline to support duplicated vaas
Co-authored-by: ftocal <fert1335@gmail.com>

* Add isDuplicated flag in vaas and operations endpoints
Add new endpoint to find duplicated vaas by vaa id
Co-authored-by: walker-16 <agpazos85@gmail.com>

* Add metrics for duplicated vaas

Co-authored-by: walker-16 <agpazos85@gmail.com>

* Update node dependencies in spy

Co-authored-by: walker-16 <agpazos85@gmail.com>

* Fix promethes metrics for missing tx-hash in tx-tracker

Co-authored-by: walker-16 <agpazos85@gmail.com>

---------

Co-authored-by: Agustin Pazos <agpazos85@gmail.com>
2024-04-22 14:26:07 -03:00
walker-16 8dc2b5ac5f
Normalize txHash destination in tx-tracker component (#1274)
Co-authored-by: ftocal <fert1335@gmail.com>
2024-04-08 14:05:48 -03:00
walker-16 04da0b3e4d
Add wormchain injective integration (#1260)
* Add wormchain injective integration

* Add metrics and logger for unknown wormchain

* Add wormchain rpc config
Co-authored-by: ftocal <fert1335@gmail.com>

* Add evmos, kujira, osmosis to wormchainRpcProviders
Co-authored-by: ftocal <fert1335@gmail.com>

* Add backfiller for tx-tracker with emitterChainId, emitterAddress and range time parameters

Co-authored-by: walker-16 <agpazos85@gmail.com>

---------

Co-authored-by: Fernando Torres <fert1335@gmail.com>
2024-04-05 15:24:21 -03:00
ftocal adb7231074
Add processed message metrics in pipeline components (#1239)
Co-authored-by: walker-16 <agpazos85@gmail.com>
2024-03-25 15:21:10 -03:00
walker-16 cc2ca592e2
Add metrics in tx-tracker to count destination tx inserted (#1233) 2024-03-22 11:30:46 -03:00
walker-16 bc3110f3d4
Modify intialize to support fallback url and rate limit (#1093)
* Modify intialize to support fallback url and rate limit

* Add fallback and rate limit config for all the chains

* remove unused WormchainTxDetail struct

* Add pool of items to common

* Add rpc pool to tx-tracker

* Rename chain url to baseUrl

* add fallback to wormchain chains

* update tx-tracker fetchone to use rpc pool

* Modify backfiller to use rpc pool

* fix merge to main run files

* Add rpc pool to controller

* remove comments

* fix pool sort function

* Add rpc pool to all the chains

* Fix algorand, aptos, sui integrations

* Fix pool solana

* remove api_sei3 old implementation

* Add metrics to get success/error rpc call

* Add rpc field in call rpc metric

* Fix common go.mod and remove unused if condition

* Update go.mod tx-tracker

* Create rpc count prometheus metrics

* Add fallback to insert originTx if rcp fail

* Check if the transaction doesn't exists

* Modify in tx-tracker already processed method

* fix wormchain rpc

* Add rpc settings as json file

* Enable overwrite to stress test

* Add rpc provider as k8s secret

* Add metrics to get vaa retry processing
Co-authored-by: ftocal fert1335@gmail.com

* Add worker pool in consumer for tx-tracker

* fix config by env

* Set consumer workers in 1

---------

Co-authored-by: Fernando Torres <fert1335@gmail.com>
2024-03-19 15:47:43 -03:00
ftocal dc1117f6f5
Add backfiller for tx-tracker (#1132) 2024-02-20 09:58:37 -03:00
ftocal 49f9bedd29
Handle transfer-redeemed event from blockchain-watcher (#1039) 2024-01-24 14:51:04 -03:00
ftocal 27bf188149
Delete unhandled messages from sqs (#987)
Add more log
2024-01-15 14:11:41 -03:00
ftocal e21b836455
Add handler for redeem events from blockchain-watcher (#986) 2024-01-15 10:22:05 -03:00
ftocal 7992f76e56
Improve tx tracker logic without internal retries (#890)
* Improve tx tracker logic without internal retries

Co-authored-by: walker-16 <agpazos85@gmail.com>

* Add message attribute in pipeline sns

Co-authored-by: walker-16 <agpazos85@gmail.com>

---------

Co-authored-by: walker-16 <agpazos85@gmail.com>
2023-12-12 15:46:00 -03:00
ftocal 6edd3c4711
Ignore vaa from near in tx-tracker (#883)
Co-authored-by: walker-16 <agpazos85@gmail.com>
2023-12-11 10:16:06 -03:00
ftocal cbdd72ec9c
Process missing txHash in tx-tracker (#866)
Improve event processing in tx-tracker
Add new prometheus metrics
Handle vaa without txHash from gossip flow
Fix for already message processed
Change rpc endpoints and rate limit for tx-tracker

Co-authored-by: walker-16 <agpazos85@gmail.com>
2023-12-07 11:06:48 -03:00
ftocal 2488da74aa
Add support to handle multiple signature for an address in solana (#850)
Co-authored-by: walker-16 <agpazos85@gmail.com>
2023-12-04 15:30:16 -03:00
ftocal 7c467f5267
Integrating blockchain watcher data into mongodb (#820)
* Handle log-message-published generated by blockchain-watcher in parser, tx-tracker y analytics

* Add deployment for staging-testnet environment
Improve logs

* Add operation endpoints

---------

Co-authored-by: Agustin Pazos <agpazos85@gmail.com>
2023-11-27 12:31:35 -03:00
ftocal 11b162ca54
Add Sei support in tx-tracker (#800)
* Add Sei support in tx-tracker

* Code review updates
2023-11-15 12:11:24 -03:00
ftocal 5e3adeb4ad
Retrieve chain and sender of wormchain originated vaas (#678)
* Add additional information for osmosis transaction through wormchain

Co-authored-by: walker-16 <agpazos85@gmail.com>

* Modify tx-tracker deployment

Co-authored-by: walker-16 <agpazos85@gmail.com>

---------

Co-authored-by: walker-16 <agpazos85@gmail.com>
2023-09-04 15:17:23 -03:00
walker-16 abb5baf24e
add metrics to tx-tracker (#556) 2023-07-19 09:04:41 -03:00
agodnic 61d070e859
Fix tx tracker performance issues (#537)
### Description

The `tx-tracker` service is failing to process messages at the speed we need. This pull request is an attempt at fixing the issue.
2023-07-14 10:39:09 -03:00
agodnic 1ef666322c
Fix missing `txHash` for chains 1 and 22 (#530)
### Summary

This pull request changes the retry logic in the `tx-tracker`.

When failing to process a transaction, the associated SQS message will be left to expire and will reappear after `visibilityTimeout` seconds. As a side effect, there will be several retries before giving up.
2023-07-13 12:26:38 -03:00
agodnic 0a854b590d
Improve performance in the `tx-tracker` service (#519)
### Description

This pull request implements an improvement in the processing logic of the `tx-tracker` service to avoid processing a message more than once.
2023-07-11 16:31:45 -03:00
agodnic 93e1a72409
Improvements in the `tx-tracker` service (#517)
### Description

This pull request implements improvements in the `tx-tracker` service:
* Adjust SQS visibilityTimeout.
* Process PythNet messages concurrently (this will make it easier for the service to catch up if there are a lot of messages in the input queue).
* Add more context information to error messages.
2023-07-06 15:26:18 -03:00
agodnic 57f8878979
Adjust log message severity in `tx-tracker` (#511) 2023-07-06 10:26:16 -03:00
agodnic 8ad4d6276f
Add retry logic to the `tx-tracker` service (#480)
### Summary

Tracking issue: https://github.com/wormhole-foundation/wormhole-explorer/issues/415

When the `tx-tracker` service processes a VAA, sometimes the transaction is not finalized (e.g.:for chains with slow finality, VAAs with low consistency level, out-of-sync nodes). This problem was observed on chains like Solana, Ethereum and Polygon, but could have happened on other chains.

This pull request adds the logic needed to wait and retry processing the VAA, hoping that the originating transaction reaches finality.

Also, the `tx-tracker` service now uses a worker pool to process transactions, which will lead to higher throughput. This will benefit the WormholeScan UI, specially in the case when a large number of VAAs are emitted in a short period of time.
2023-07-04 15:25:08 -03:00
agodnic 19743322e4
Retrieve sender address for each transaction (#408)
### Summary

Tracking issue: https://github.com/wormhole-foundation/wormhole-explorer/issues/404

The WormholeScan UI needs to display the sender address for each token bridge VAA. This pull request modifies the `tx-tracker` service to obtain that information for Solana and eight EVM chains.

The transaction sender will become accessible through the following endpoints:
* `GET /api/v1/global-tx/{chain}/{emitter}/{seq}`: field `originTx.from`.
* `GET /api/v1/transactions`: field `originAddress`.
In both cases, the field is nullable (i.e.: sometimes it may not be available due to eventual consistency or internal errors)
2023-06-14 17:46:53 -03:00
agodnic 09870f3d65
[tx-tracker / api] Avoid duplicating data (#256)
### Summary
Tracking issue: https://github.com/wormhole-foundation/wormhole-explorer/issues/254

For all chains except Solana, the data in `globalTransactions.sourceTx` was somewhat duplicated, since we already had that data in the `vaas` collection.
This pull request changes the `tx-tracker` service so that no redundant data will be written, and also changes the API to look up the data from the `vaas` collection instead.

The responses from the endpoint `/api/v1/global-tx` will no longer contain the field `originTx.from`.
2023-04-25 15:34:29 -03:00
agodnic 24673d4f31
Optimize tx-tracker backfiller (#220)
### Summary
The backfiller for tx-tracker data was not running as fast as it should. It was optimized it in order to reduce processing times.
2023-04-12 15:46:16 -03:00
agodnic 1f47f887da
[API/TX-TRACKER] Add support for Solana tx hashes (#218)
### Summary
This pull request adds the functionality to search for VAAs using Solana tx hashes, e.g.:

`GET /api/v1/vaas?txHash=2qnNNBQQQ152sGkQ1Rnq2Kdr48LvdN4oXwnTWyEmJqYYWFusLWxbwhpGS5KTXH1bKKx9gg9BLZMKd3g1cXiy7QMz`.

Also, the VAA objects returned by the API now have a new field `nativeTxHash`, which contains the tx hash that generated the VAA in the native format of the emitter chain.

Tracking issues: https://github.com/wormhole-foundation/wormhole-explorer/issues/212, https://github.com/wormhole-foundation/wormhole-explorer/issues/214

### Testing guidelines

Endpoints affected:
* `GET /api/v1/vaas` now supports Solana tx hashes by using the `?txHash=` query parameter. This search is limited to VAAs created by the portal token bridge.
* Some VAAs returned by the API should have a new field `nativeTxHash`. All VAAs related to the portal token bridge should have this field set.
*  An internal refactoring affected pretty much all routes under `GET /api/v1/vaas*`, which should be re-tested.
* In the response of `/api/v1/global-tx/`, the field `originTx.signer` has been renamed to `originTx.from`
2023-04-05 10:33:28 -03:00
agodnic 2da5719d49
[tx-tracker] Fix issues related to rate limits (#213)
### Summary

The tx-tracker service was exceeding node RPC rate limits, which caused it to fail.

This pull request changes the APIs upon which the service depends to avoid the same issue in the future.

Also, the backfiller job has been updated accordingly.

Tracking issue: https://github.com/wormhole-foundation/wormhole-explorer/issues/205
2023-03-30 12:25:16 -03:00
agodnic d0cf9cc04b
[API] Fix issue in VAA search filters (#211)
### Summary

Searching for VAAs with the `txHash` and the `parsedPayload` parameters simultaneously wasn't working correctly. This commit fixes the problem.

Tracking issue: https://github.com/wormhole-foundation/wormhole-explorer/issues/210
2023-03-27 16:14:38 -03:00
agodnic 02ffff93bf
[TX-TRACKER] Add support for Celo (#209)
### Summary
This pull request upgrades the tx-tracker service, adding support for transactions originated in the Celo blockchain.

Tracking issue: #206
2023-03-27 16:14:12 -03:00
agodnic e5818a9dee
[TX TRACKER] Add backfiller for source transactions (#194)
### Summary

This pull request adds a Kubernetes job that backfills missing data (i.e.: transactions that the tx-tracker service has not processed).
2023-03-20 16:36:19 -03:00
agodnic 2b50eb5116
[TX TRACKER] Add component that obtains transaction data (#159)
### Summary

This pull request adds a new component under the directory `txtracker`.

This component retrieves information about portal token bridge transfers (i.e.: sender address, receiver address, timestamp), and persists the data in MongoDB.

### Chains supported

The blockhains currently supported are:
* Terra (27% of outgoing transfers)
* Solana (25%)
* BSC (25%)
* Eth (14%)
* Polygon (4%)

The remaining chains will be added iteratively as needed.
2023-03-14 15:49:10 -03:00