wormhole-examples/pyth_relay
bruce-riley dc55817d6f
Pyth relay (#14)
* initial commit

* Rework to make it pyth instead of spy

* Add command to listen to mainnet to readme

* More code rework

* Dump productId from messages

* Fixes for message parsing

* Drop duplicate messages

* Start of creating docker file for pyth_relay

* Trying to get docker  to listen to spy_guardian

* Proving that docker image works

* Publish to Terra

* Keep connection to Terra open all the time

* Add timing to terra relayer code

* Not passing fees into transaction

* Use Winston logger

* Update commads to build and run spy guardian

* Specify config file via env variable

* Console logging not honoring log level

* Remove dependence on redis

* Add support for listen only mode

* number of publishes is off by one

* Only one worker should use the wallet at a time

* Add prometheus metrics

* Add ability to query wallet balance

* Add latency histogram

* Use a condition variable rather than sleeping to reduce delays

* Periodically query the wallet balance

* Add wallet balance metrics

* Add incoming packet counter

* Enable strict type checking

* Add design document

* Adding more stuff

* Remove use of deprecated methods.

* Back out bug from "fixing" deprecated code.

* Remove deprecated methods

* fix: Improvements to Dockerfile Wormhole pyth_relay and spy_guardian (#10)

Co-authored-by: Eran Davidovich <edavidovich@jumptrading.com>

* Revert dockerfile

* fix: fix Dockerfile entrypoint (#11)

also modify docs to reflect the change.

Co-authored-by: Eran Davidovich <edavidovich@jumptrading.com>

* Batch messages into a single tx per block

* Update the testnet parms in env.sample

* Reduce lock contention in the worker

* Adding already executed metric

* Adding timeout metric

* Peg already executed and timeout metrics

* Handle "already executed" exception

* Add wallet update time for metrics

* Catch silent failure on relay

* Log file not getting written if error on init

* Add timestamp label to wallet metric

* Add support for readiness probe

* Make spy_relay support listen_only mode

* Add default metrics

* Manage seq num locally

* Manage seq num locally

* Oops! Didn't mean to commit "noEmit"!

* Update docs

* Delete app.js

This file is not relevant to pyth_relay

Co-authored-by: Paul Noel <panoel007@gmail.com>
Co-authored-by: Eran Davidovich <erancx@users.noreply.github.com>
Co-authored-by: Eran Davidovich <edavidovich@jumptrading.com>
Co-authored-by: Paul Noel <35237584+panoel@users.noreply.github.com>
2022-02-09 08:01:45 -06:00
..
src Pyth relay (#14) 2022-02-09 08:01:45 -06:00
.env.sample Pyth relay (#14) 2022-02-09 08:01:45 -06:00
.gitignore Pyth relay (#14) 2022-02-09 08:01:45 -06:00
Design.md Pyth relay (#14) 2022-02-09 08:01:45 -06:00
Dockerfile.pyth_relay Pyth relay (#14) 2022-02-09 08:01:45 -06:00
Dockerfile.spy_guardian Pyth relay (#14) 2022-02-09 08:01:45 -06:00
README.md Pyth relay (#14) 2022-02-09 08:01:45 -06:00
package-lock.json Pyth relay (#14) 2022-02-09 08:01:45 -06:00
package.json Pyth relay (#14) 2022-02-09 08:01:45 -06:00
tsconfig.json Pyth relay (#14) 2022-02-09 08:01:45 -06:00

README.md

Setup Spy Guardian and Pyth Relay

To build the spy_guardian docker container:

$ cd pyth_relay
$ docker build -f Dockerfile.spy_guardian -t spy_guardian .

To build the pyth_relay docker container:

$ cd pyth_relay
$ docker build -f Dockerfile.pyth_relay -t pyth_relay .

Run the spy_guardian docker container in TestNet:

$ docker run --platform linux/amd64 -d --network=host spy_guardian \
--bootstrap /dns4/wormhole-testnet-v2-bootstrap.certus.one/udp/8999/quic/p2p/12D3KooWBY9ty9CXLBXGQzMuqkziLntsVcyz4pk1zWaJRvJn6Mmt \
--network /wormhole/testnet/2/1 \
--spyRPC "[::]:7073"

Or run the spy_guardian docker container in MainNet: For the MainNet gossip network parameters, see https://github.com/certusone/wormhole-networks/blob/master/mainnetv2/info.md

$ docker run --platform linux/amd64 -d --network=host spy_guardian \
--bootstrap <guardianNetworkBootstrapParameterForMainNet> \
--network <guardianNetworkPathForMainNet> \
--spyRPC "[::]:7073"

Then to run the pyth_relay docker container using a config file called {HOME}/pyth_relay/env and logging to directory {HOME}/pyth_relay/logs, do the following:

$ docker run \
--volume=${HOME}/pyth_relay:/var/pyth_relay \
-e PYTH_RELAY_CONFIG=/var/pyth_relay/env \
--network=host \
-d \
pyth_relay