Commit Graph

168 Commits

Author SHA1 Message Date
Leo 3ec4ad6ad3 node: remove raw heartbeat stream
As discussed with Justin, we no longer need this endpoint.

Removing it means we no longer have to worry about
long-lived connections.

Change-Id: I75020652d383a6b5f79a3cad1b52ae87d323f012
2021-08-23 10:51:09 +00:00
Leo 739e0f2bb9 node/pkg/ethereum: fetch guardian set at startup
Rather than waiting 15s for the timer to tick, request the
guardian set immediately at startup.

This has the added advantage of being able to crash the
runnable if the guardian set can't be fetched initially.

Change-Id: Ib4cb476c05e92ecd06496043d248eb3ca25b8065
2021-08-23 10:51:09 +00:00
Evan Gray d09abac78f devnet: fix eth addresses
Change-Id: I83bd59f35b65e87b14183410e49dd9aca6c62c85
2021-08-19 17:06:18 +00:00
Leo 9d22d89f7f node/pkg/p2p: demote invalid signed heartbeat errors to debug level
This is a normal occurrence with people bringing up additional
nodes for testing purposes.

Change-Id: If333656333cf1da80b2c16f597c90a55a5a5153b
2021-08-13 11:18:58 +00:00
Leo 3f81840e69 node/pkg/p2p: use mutex for error counters
Change-Id: Idde862e034c567b7ac2d5648bec0b3505f032b0c
2021-08-10 18:47:50 +02:00
Leo 212e04a72d node/pkg/ethereum: poll for guardian set changes
The new set of Eth contracts no longer emits an event.

Change-Id: I6c3654c88960b08b5548ed72cf09e555b079ef3a
2021-08-10 17:39:10 +02:00
Leo e9491d25f8 node/pkg/publicrpc: add GetCurrentGuardianSet RPC call
This is required for network explorers to know about missing guardians
(the GetLastHeartbeats call won't contain those nodes at all).

Change-Id: I28d8621023d79e6fa94c40f36a239c34aa12f1b0
2021-08-10 17:35:33 +02:00
Leo 67793cd144 node/pkg/p2p: add per-chain error counters
Change-Id: I47700ccb2dc93aefefa8ab6b6f0659f30912e142
2021-08-10 13:24:43 +00:00
justinschuldt 6126cfaf40 SignedObservation validation log message
Change-Id: I372f2ee703b5cc82a6a7e1f4df031357304b174b
2021-08-09 17:38:19 -05:00
Leo 8718e31fb4 node/pkg/p2p: remove support for plain heartbeats
Change-Id: I621467615c2a46ab08ecae6227021b1e4efc1196
2021-08-09 13:16:55 +00:00
Leo 73b0fce440 node/pkg/p2p: add metric for guardian network heights
Change-Id: Ie09d203d316a448dba5d4ac9269113467e2da78e
2021-08-09 13:16:55 +00:00
Leo 61a90136ca proto: add boot_timestamp to Heartbeat
Allows for precise uptime calculation.

Change-Id: I57d022ec10a56df57a4a1f79ae892eb8899f7154
2021-08-09 13:16:55 +00:00
Leo c7662d611e node: store heartbeats for multiple nodes per guardian
It's safe to break the proto API at this point.

Change-Id: I235100c5fef3abc9259d28f68d9bb7bf2be0ae5e
2021-08-09 13:16:55 +00:00
Leo e46d70bbe2 node/pkg/readiness: be even more explicit about readyz
RTFM!

Change-Id: I6f4eefb8f6d22fcd620b24658b3c2cfd0b48c949
2021-08-09 13:16:55 +00:00
Leo 61dd1c1052 node/cmd: unary list-nodes call with details
Change-Id: I9953b45d92461887b075b3456bdd9e161eefd263
2021-08-09 13:16:55 +00:00
Leo 336f373bb5 node/pkg/p2p: store own heartbeat in GuardianSetState
Change-Id: I6b9ab2ce267161d20c17d5d528fd7741c2eb48b4
2021-08-09 13:16:55 +00:00
Leo 3dcf1f1998 node/pkg/common: add GetAll accessor for GuardianSetState
Change-Id: I7ce71d356f9fc83cc751e98835cbae070deb8640
2021-08-09 13:16:55 +00:00
Leo 8cee72ba9c node: add disableHeartbeatVerify flag
During network boot, the guardian set is empty and we temporarily
need this flag to figure out everyone's status.

Change-Id: I8ba23848310837080ae845d55ece5d3818181b98
2021-08-06 15:14:17 +00:00
Leo 82731c22c0 node: add GetLastHeartbeats RPC call
This aggregates verified guardian heartbeats server-side so they
can be fetched via unary calls.

Change-Id: I8458b139bb5d75f87ed700b50684a5ff8ca594fa
2021-08-04 14:26:26 +00:00
Leo b77d408235 node/pkg/ethereum: readiness status for bsc
Bug: certusone/wormhole#292
Change-Id: Ibb176dc70beeb2c00c7faf7d85395e93d53e9e4c
2021-08-02 14:30:29 +02:00
Leo 3af233e3eb node: add GuardianSetState and verify heartbeat signature
Bug: certusone/wormhole#267
Change-Id: Ica8015fbbd52506d800670d933051f410bb1caa7
2021-07-31 19:02:09 +02:00
Leo 08a8f390ca node/pkg/version: panic on empty version
Change-Id: I72207193e459122596f9731b36f45f619ccdad6c
2021-07-31 17:15:51 +02:00
Leo fddbb0c2a4 node: remove outdated TODOs
Change-Id: I05c2e2599e081fb439fd186ee853c0b7ca508969
2021-07-31 16:32:54 +02:00
Leo 2ebf473531 node: introduce SignedHeartbeat
Bug: certusone/wormhole#267
Change-Id: Ia34fa053240d7b340287cc4cc1e15556d3ff2893
2021-07-31 16:21:38 +02:00
Leo 723cf5fe95 node: add GetSignedVAA endpoint
Works:

$ curl 'http://localhost:7071/v1/signed_vaa/1/1268b2bf4a[...]/0'
{"vaaBytes":"AQAAAAABACbK50nrmgWPtTmRlYf/[...]"}

Bug: certusone/wormhole#282
Change-Id: I09eade00c4649c550f06a2efe350d6d9ff9da3ae
2021-07-31 03:03:37 +02:00
Leo 9c9c48ef3b Migrate proto generation to buf
Bug: certusone/wormhole#282
Change-Id: Ib20d8b9bcf19a26b12a586532281d83e95f0653e
2021-07-31 03:03:36 +02:00
Leo 7e0bbdbe6e node/pkg/db: store signed VAAs in database
Bug: certusone/wormhole#282
Change-Id: Iecd4ff74a1e73655ac3240991a4dc36e572cdb15
2021-07-31 03:03:35 +02:00
Leo b2495ca43e node/pkg/solana: fix solanaConnectionErrors panic
Change-Id: I75889897e47902abe54cc45153934e73f1f3dcd4
2021-07-30 22:46:20 +02:00
Leo d37375e9a3 node/pkg/solana: simplify client method signatures
Change-Id: Ic317c78d7415dc11baf39d696ebdd57336b219bc
2021-07-30 09:06:25 +00:00
Leo 493b7ee855 node/pkg/solana: filter by requested consistency level
certusone/wormhole#248

Change-Id: Ib40b6016bda19e17c4700db6b39dbf340dfc0f4c
2021-07-29 15:55:57 +00:00
Leo 5bfa3b0055 node/pkg/solana: run one Solana watcher per consistency level
certusone/wormhole#248

Change-Id: I98abc6b4e635b8b5679fcda5342c90b0e5c96077
2021-07-29 14:27:04 +00:00
Leo b9633d6d65 node/pkg/solana: fork solana-go to add GetConfirmedTransactionWithOpts
certusone/wormhole#248

Change-Id: I093d619cb82b35b963447cf4a5dc18ef6be1a0f5
2021-07-29 14:14:09 +02:00
Leo cd8d2f68ed node/pkg/solana: verbose logging for observations
certusone/wormhole#248

Change-Id: Iae4b4d187e8d6728de9087e43c5f8a7b4d821540
2021-07-29 14:14:09 +02:00
Leo d5e6c844e3 node/pkg/solana: add initial logic for block-by-block requests
CPI part is untested.

Commitment level is hardcoded to "finalized", but can be refactored
to use both "committed" and "finalized" later.

certusone/wormhole#248

Change-Id: I5ae7711c306b33650367e6f7a417ab9d88753612
2021-07-29 12:14:01 +00:00
Leo b70466d185 node/pkg/solana: use gagliardetto/solana-go fork
This fork is up to date on latest Solana changes, while the dfuse
origin appears to be abandoned:

https://github.com/dfuse-io/solana-go/compare/master...gagliardetto:main

Change-Id: I5d2999ec7e26bd79a8302e2a5a6dddfd5e2bcbee
2021-07-28 16:34:24 +00:00
Leo cf9ea6bfde node: add Binance Smart Chain support
BSC is identical to Eth, so we can just re-use our Eth devnet.

Fixes certusone/wormhole#185

Change-Id: Ib96a71b5e5873d7cbd8f26dbb655049c6a64cef9
2021-07-28 16:34:24 +00:00
Leo 1686b35587 node/pkg/ethereum: remove emitGuardianSet flag
Change-Id: Ic275220080d29b5a834f6487502619df877059c9
2021-07-28 16:34:24 +00:00
Leo f717262282 node/pkg/ethereum: rename lockup to message
Change-Id: I914d348940ac3f0c359a4d5175cbe5861e9fe1c2
2021-07-28 16:34:24 +00:00
Leo 863e0e69ec node/pkg/ethereum: configurable chain ID and name
Fixes wormhole/issues#247

Change-Id: Ieb792b73970603283e4ffc4a8b9217c85964fb9f
2021-07-28 16:34:24 +00:00
Leo 514560f52c node: use promauto to auto-register metrics
Fixes certusone/wormhole#188

Change-Id: I26c0e3f05993e44185b6ee2531b7673f7fbc0eb6
2021-07-26 13:01:55 +00:00
Leo 54b2e51379 publicrpc: move runnable to cmd/guardiand
This matches the adminrpc implementation, removing the runnable
and socket listener from pkg/publicrpc API surface.

Change-Id: Ia6461c2ff839f39462391c5afd2694b1619b30b6
2021-07-22 13:26:19 +02:00
Leo a897166a0c publicrpc: expose PublicrpcServer
This is necessary if we want to register the service
with an existing gRPC server, rather than a separate service.

Also renames PublicRawHeartbeatConnections to RawHeartbeatConns
for brevity and fixes some typos.

Change-Id: If508de0e2fa68738ba204c4aafa1159139c6d1f8
2021-07-22 13:18:22 +02:00
Leo 07106497f1 readiness: fix data race
Change-Id: If548f2b28d4ebaaa7d5a2127f684371fad6c2451
2021-07-21 19:52:51 +00:00
Leo 052d922036 Clean up docs and packages for v2
Change-Id: I1020e648f4a8bd51412cf06196e78665308efdac
2021-07-21 19:46:10 +02:00
Hendrik Hofstadt 98810080cc Fix readiness probe in guardian
Change-Id: Ia83ba29a7facf687d1765bf45fe012969a9835dc
2021-07-21 14:05:13 +00:00
Hendrik Hofstadt 9fbb8d76c9 Remove persistence remainders from the guardian
Change-Id: I1c4c02820c2e5c0aca0c07402b854ffebd5cff0b
2021-07-20 23:50:38 +02:00
Hendrik Hofstadt c0228415f8 Fix devnet
Change-Id: I1d62e6323cc2169cce43581f9aeefb537bc84a76
2021-07-20 23:34:37 +02:00
Leo af31436915 node: remove VAA submission and channel
Change-Id: Iae82b6353852dc052a7e220f483e5557a0f157c4
2021-07-20 23:17:47 +02:00
Leo 584bfcba2d node: remove terra fee payer
Change-Id: Iffdf5a790fd546b9b43137ee03018da3d94d3ac8
2021-07-20 23:17:47 +02:00
Leo d509693367 node: remove Solana VAA submitter and agent connection
Change-Id: I6201b00f3cbf9f0fee0cc14ce8fdc8ca8583ce97
2021-07-20 23:17:47 +02:00