Commit Graph

31 Commits

Author SHA1 Message Date
derpy-duck 33d7ea717c
Relayer: update relayer engine version (#3179) 2023-07-07 12:58:33 -04:00
derpy-duck 3bb7fbf245
Relayer: Relayer engine (#3169) 2023-07-06 17:00:05 -04:00
derpy-duck b97a620614
Relayer: npm ci instead of install in Relayer engine dockerfile (#3101)
* npm ci instead of install

* update package-lock
2023-06-16 11:57:37 -04:00
derpy-duck 82e31f6965
Relayer: Import sdk in relayer engine (#3095)
* Update relayer engine dockerfile to import SDK, and reduce timeout

* fix import

* Add ethereum config folder
2023-06-16 06:44:55 -04:00
chase-45 515ccceedf
relayer: improve delivery process debugging, add utility functions (#3028)
* starting calcs for relayer inbound / outbound

* monitoring additions & adding price monitor relay process

* adding basic infra for pricing & monitoring process

* added a large amount of debugging info to the relayer delivery process

* redelivery relayer processing fixes & debug improvements

* fixing delivery process breaks from renaming

* fixing naming errors inside the pricing process

* removed pricing process, rename delivery folders

* removed test error & refactored util directory

* moving out utilities from relayer delivery process

* moved lambda logic inline

* cleaning up comments

* Restore Tiltfile change

* Restore sdk package.json change

---------

Co-authored-by: derpy-duck <115193320+derpy-duck@users.noreply.github.com>
2023-06-15 05:33:26 -03:00
derpy-duck 10cc45aba2
Relayer/merge into wormhole relayer engine (#3042)
Note: The time limit for CI needs to be increased because now the relayer engine needs to build the SDK from source (the ethereum folder) in it's docker image.

Once the SDK is published, I can have the relayer engine docker image simply import the SDK, which should save a lot of time and allow us to reduce the CI time limit again.
2023-06-14 15:08:28 -04:00
Jeff Schroeder 9768de3192 relayer: update docs on running a spy
Having two bootstrap nodes allows an outage of the certus one guardian
to not cause too much hassle with existing spy instances or new
guardians restarting.

Thanks @fchantada and the xLabs team for adding the dns and helping
set this up.
2023-03-08 10:33:36 -05:00
Hendrik Hofstadt ff186e441a rename dev.v2 to main
Change-Id: Idfc6f88de7ee3c190a01c2196dc0bc4da91cbe4c
2022-11-29 10:43:07 -05:00
Evan Gray 090a8e0c74 relayer: fix ci 2022-10-27 14:04:38 -04:00
Hiroto Shioi 3fd0631589 Optimize dockerfile 2022-10-27 14:04:38 -04:00
Hiroto Shioi f15bd58475 Enable docker-compose usage 2022-10-27 14:04:38 -04:00
Evan Gray 6c6661f621 js: make packages comply with ci rule 2022-10-20 17:11:13 -05:00
Jeff Schroeder 7fbffe424d
Fix the spy documentation for testnet (#1737)
Since the testnet guardian node key changed post restart.
2022-10-14 12:41:56 -04:00
Jeff Schroeder 811e17afb0
node: docs for running a spy against mainnet (#1511) 2022-09-03 10:59:20 -04:00
Evan Gray f28e39c490 certusone -> wormhole-foundation 2022-08-26 12:48:14 -04:00
kev1n-peters d50ef1c28b
spy_relayer: Terra 2 support (#1417) 2022-08-11 16:47:50 -05:00
Jeff Schroeder bb4d2ac206
Modular relayer support (#1266)
* Add the default backend for the relayer

Start to slowly split things out.

* Configure the backends when configuring the env

* First stab at the pluggable listener backend

* Update relayer example (and test) config

* relayer: JIT backend

* relayer: walletMonitor remove useless function

* relayer: update worker init() funcs

It is silly to accept a boolean in thing.init() vs just not running init
if you don't want to run thing.

* relayer: remove env property from Listener

It is verified in init() in spy_listener.ts and rest_listen.ts, so it can
be deferred to not require the import.

* relayer: clean up the main bits

Only try to init() something when it is actually supposed to run
per the cli flags.

* spy_relayer: more descriptive var name in main

* spy_relayer: Update relay worker with more docs

* spy_relayer: add targetChainName to WorkerInfo

This makes it easier to pretty print the chain name in the logs without
having to look the name up.

* spy_relayer: update logs and use the backend

* Use the Relayer interface's process() method in place of processVaa()
* Update the logs to include the chain name in the worker and auditor threads

* spy_relayer: remove processRequest()

It has been moved to the process() method of the default Relayer backend.

* spy_relayer: start fleshing out the Relayer default

* spy_relayer: fix a logic bug in checkQueue()

Co-authored-by: @swimricky

* spy_relayer: update TokenBridgeRelayer.process()

* Remove some extra logic
* Actually use the ChainId type since the id of 0 is in the sdk now

* spy_signature: add Relayer.runAuditor()

The auditor code is payload specific and needs to be with the backend.

* spy_relayer: move Relayer.runAuditor()

Make it part of the backend since the backend has all of the payload
specific logic into it.

* spy_relayer: move relay() --> Relayer.relay()

The actual relaying is part of the backend, so make it so.

* spy_relayer: add Relayer.runAuditor()

* spy_relayer: no more deprecated hexToNativeString

* spy_relayer: implement Relayer.targetChainId()

This is used for finding workable items in the incoming queue to toss
into the working queue.

* spy_relayer: remove relay.ts

The relay() function was moved to Relayer.relay()

* spy_relayer: more uses of deprecated hexToNativeString()

* spy_relayer: remove unused import

* spy_relayer: review feedback from @bruce-riley

* Fix some spelling tyops
* Simplify some logging
* Simplify a conditional for the payload version check

* spy_relayer: misc fixes and code clean up

* Fixed integration tests
* Added launch.json file for debugging in VS Code
* Updated to latest wormhole SDK
* Backup queue uses same key as redis
* Added Terra Classic flag
* Throttle potential infinite loop in audit thread
* Fixed spy service connection leak

Co-authored-by: Evan Gray <battledingo@gmail.com>
Co-authored-by: Kevin Peters <kpeters@jumptrading.com>
2022-08-05 10:20:36 -04:00
Jeff Schroeder 3ce18fd66d Add the opencontainers source label to the relayer Dockerfile 2022-07-19 21:15:49 -04:00
Jeff Schroeder e538c074d3 relayer/spy_relayer: update README
With a bit more coherent docs
2022-07-18 09:39:58 -04:00
Jeff Schroeder ad845583e8 relayer/spy_relayer: remove Dockerfile debug bits 2022-07-18 09:39:58 -04:00
Joe Howarth b306051bde Change spy_relayer readme guardian run command nodeKey path from /tmp/node.key -> /node.key 2022-07-14 23:29:03 -04:00
claudijd 8221708ef0 Move from ADD to COPY on Dockerfiles 2022-07-13 09:27:15 -04:00
Bruce Riley 432260bc19 Add new emitter addresses to relayer config 2022-06-22 11:12:30 -04:00
Jeff Schroeder c4da29c209 spy_relayer: add karura token bridge emitter
This way, the spy listener will filter for messages from that emitter.
2022-06-21 16:39:33 -04:00
bruce-riley 24c5b17267
Neon to testnet (#1262)
* WIP: neon

* Watcher support

* Use eth_getLogs for Neon

* bridge_ui: update sdk version

* Setting WETH address for Neon

* Portal bridge support for WNEON

* relayer: update sdk

Co-authored-by: Evan Gray <battledingo@gmail.com>
2022-06-14 10:22:49 -04:00
Evan Gray 6a7fba9b04
update relayer readme (#1253) 2022-06-03 13:20:24 -04:00
Jeff Schroeder c410b19a9f Update relayer examples to add klaytn and celo 2022-05-18 14:15:25 -04:00
Bruce Riley a5eadbae40 Make relayer get gas price for fantom too 2022-05-18 13:55:05 -04:00
Evan Gray 5b09707f70 relayer: support celo and klaytn 2022-05-17 14:14:43 -04:00
Evan Gray 50bb184522
Spy relayer fixes (#1095)
* try catch pullAllEVMTokens

* remove some logs from walletMonitor

* redundant check fix, init s/f metrics

* fix unwrap for realz

* confirmed and rollback metrics

* fix terra balance fetching

* relayer: split out wallet monitor

* relayer: update tilt for wallet-monitor

* relayer: evm print tx hash before wait

* relayer: split out redis queue by source/target

* Update spy relayer example mainnet config files

* Includes Aurora bits in the emitter addresses, supported tokens,
  and supported chains.

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>
2022-04-20 19:51:12 -04:00
Jeff Schroeder 349fa42c58
Spy relayer cleanup (#1015)
* initial spy-relayer

* Update spy_relayer Dockerfile

* added example mainnet config files

* split out private keys into its own ENV variable

* Update spy relayer supportedChains.json

To remove the `walletPrivateKey` entries. All of the private keys have
been split out into their own json file.

* fixed evm private key env parse

* missing solana accounts report 0 balance, rather than error

* wallet address is logged in debug

* spy_relayer: enabled prometheus default metrics

Also set a prefix of `relayer_`

* spy_relayer: updates to the prometheus bits

* Use a single metric registry
* Use a simpler metric name and add labels for individual wallets

* spy_relayer: human readable app mode in the metrics

[ listener | relayer | both ]

* spy_relayer: unify metrics

* remove the collection of default metrics
* hardcode the `spy_relayer_` prefix on all custom metrics

* fixed dep arrays, nullable terra token/balance info

* attempt stack debug

* debug pullTerraBalance

* provider http or ws

* update sdk

* logging for tokenAddress is 0

* fix foreign address calc

* fix calcLocalAddressesTerra

* relayer/spy_relayer: update prometheus helpers

Add / url handler for the ingress-gce stupid load balancer that
doesn't support custom url healthchecks unless you make a BackendConfig
custom resource definition.

* logging refinement

* use chain name in prometheus

* adjust retry timeout calculation

* spy_relayer: update prometheus bits

* improved error handling

* relayer ui improvements

* prep sdk release

* use latest sdk, manual redeem button

* relaying ux improvements

* gas price fix

* shortened terra success log

* use gh base relayer list

* fix prometheus urls

* Update prometheus metric name

* only show TPS warning on mainnet

* show relayer fee in source preview

* fix unwrap check

* add native bool to balance metric

* logging improvements

* add feeRecipientAddress to redeemOnSolana

* gather solana fees

* remove relayer ws support

* add nativeCurrencySymbol to ChainConfigInfo

* fix solana native symbol

* demoteWorking option, logger contexts

* scoped logging

* bridge_ui: unwrap native

* add evm wallet monitor test

* solana vaa parsing fix

* add monitorRedis

* make Jeff's brain happy

* log demoting keys

* register redisQueue metric

* human readable redisQueue metric

* fix timestamp inconsistency

* use scopedLogger for the first level of workers

* pull wallet balances in parallel

* more scoped logging

* pick a solana fee

* moving keys log improvement

* update eth gas calculations based on recent txs

* use postVaaSolanaWithRetry

* split success and failures by chain

* fix using terraCoin

* check prom every 10s

* batch getting evm token balances

* batch calcLocalAddressesEVM

* debug worker logging

* log retry number

* support Polygon?

* reset status on demotion

* enhance!

* update avax fee

Co-authored-by: Chase Moran <chasemoran45@gmail.com>
Co-authored-by: Kevin Peters <kpeters@jumptrading.com>
Co-authored-by: Evan Gray <battledingo@gmail.com>
2022-03-28 23:39:08 -04:00