Leo
63b77714ec
proto: add strict linting and fix up existing protos
...
Passing the strict lint checks requires a number of backwards-
incompatible changes:
- Rename the NodePrivileged service to NodePrivilegedService.
This is only used in CLI tooling, which are upgraded at the same
time as the server binary.
- The Publicrpc service was renamed to PublicRPCService.
- The EmitterChain type is renamed to ChainID.
- The default value for the ChainID type is renamed to
CHAIN_ID_UNSPECIFIED. This value wasn't referenced anywhere.
- The response and request types for GetLastHeartbeats were updated
to match the rpc method name.
Change-Id: I3954130d3b25ab1f859390407bba3d3c02ffe03c
2021-08-25 14:26:33 +00:00
justinschuldt
44cb47c2d8
Write attestation events to BigTable
...
Change-Id: I90fd86ff83a2e963ca306b7189528b415f5511d2
2021-08-23 09:54:28 -05:00
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