Commit Graph

130 Commits

Author SHA1 Message Date
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 dc94553751 node/cmd: add support for systemd listener sockets
This enables zero-downtime restarts for --publicWeb

Change-Id: I074ff91bebb456bd5d21b4facbb76ecd1fb1fad4
2021-08-23 10:51:09 +00:00
Leo 369a18a21c node/cmd: gRPC logging and metrics
Change-Id: Ie2fb7bb7244bd7d786867ad456f4a9531f81f879
2021-08-23 10:51:09 +00:00
Leo a35604f811 node/cmd: rename publicREST to publicWeb
Should be early enough to make this backwards-incompatible change.

Change-Id: I5ef119e286cac48839c7e20acd7b5efd0513ac78
2021-08-23 10:51:09 +00:00
Leo a587316e7d node/cmd: add support for grpcweb and tls auto-provisioning
Change-Id: I41d76216fe4095772740e127adb0d62b05964d94
2021-08-23 10:51:09 +00:00
Leo 29939502cc node/cmd: add "do not parse" notice
Change-Id: I5af53cbb306b0d8cfd9c8c262feb71ececb68fcb
2021-08-13 11:18:58 +00:00
Leo 9a030b310f node/cmd: add contract addresses and error count to list-nodes
Change-Id: I5ec7ac13a59a51da1b5a56aef8ce5cca1ca5a5e4
2021-08-13 11:18:51 +00:00
Leo 08e70a5aaf node/cmd: list missing guardians in list-nodes
Change-Id: I12e2aacbeb37c0bae5ad1e796e009a1c7b2312e1
2021-08-10 17:35:33 +02: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 61dd1c1052 node/cmd: unary list-nodes call with details
Change-Id: I9953b45d92461887b075b3456bdd9e161eefd263
2021-08-09 13:16:55 +00:00
Leo aa608b9396 node/cmd: rename list-nodes to list-nodes-stream
Change-Id: I07df1c0bb7634f6a9f65db150d353e30a681d2bc
2021-08-09 13:16:55 +00:00
Evan Gray 017af5534b bridge: fix default statusAddr
Change-Id: Ief8d3e8a5dd140c239485b5e229ef7448451b8c7
2021-08-07 19:31:40 +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
Chanwoo Lee 95c752247b fix --statusAddr not working
Closes https://github.com/certusone/wormhole/pull/298

Change-Id: Id89fa57e9d05739980696de79cf8887e407a6567
2021-08-06 15:14:07 +00:00
jschuldt 9e16baa040 Devnet arguments for BigTable connection.
Change-Id: Idc893dc87739d1b309ffefcc67d98641f4bccd9a
2021-08-05 12:53:56 +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 855be15ab8 node: refuse to run as root
While it works, it's not good operational practice, particularly when
running guardiand alongside other services like a Solana node.

Even inside a container, it's best to run as non-root.

Change-Id: I331533ef37eaab6e73f6759d7eb779bbda849384
2021-08-02 13:26:57 +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 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 8da1eaa6b1 node: add REST proxy for publicRPC service
Bug: certusone/wormhole#282
Change-Id: I2aebd60b8839c59705ad1ab3425462ccaefc7e13
2021-07-31 03:03:37 +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 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 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 863e0e69ec node/pkg/ethereum: configurable chain ID and name
Fixes wormhole/issues#247

Change-Id: Ieb792b73970603283e4ffc4a8b9217c85964fb9f
2021-07-28 16:34:24 +00:00
Leopold Schabel 933442ac8a node: create valid key file when an empty description is provided
Fixes certusone/wormhole#257

Change-Id: If0d9883513f4908cdd8303f24a999d1d612fad30
2021-07-27 12:40:46 +00:00
Leo a191017d22 node: add "admin list-nodes" command
Change-Id: Idbcfb449be300e0dc7f4a655b3f1fc455e4d8158
2021-07-22 15:11:35 +02:00
Leo 4fdfbcdea4 node: expose publicrpc service in admin socket
This makes the publicrpc service available to the admin CLI
regardless of whether the publicrpc socket is enabled on the node.

Change-Id: If0265f3cd14af44a7f8e9726af796f8879dd7a4b
2021-07-22 13:31:46 +02: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 e58730168d node: add no-op required dataDir flag
Change-Id: I8090550bbfb26686dcc5f30c3c3dcd66aae8ec10
2021-07-21 19:52:51 +00:00
Leo abe95522b1 node: remove terra fee payer argument
Forgot this when cleaning up the Terra submitter

Change-Id: Ied5af6570decf68e5e29c0d793da5e02509a2245
2021-07-21 18:41:42 +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
Leo 772922c9a6 node: remove terraEnabled flag
Terra is now always enabled

Change-Id: I2a898dd1a5027d1981cc4c65a65d14bd7c0f9fb0
2021-07-20 23:17:46 +02:00
Hendrik Hofstadt af4e29978d Add commitment level to VAAs
This allows requesting attestations for various commitment/confirmation levels. This is helpful for low-latency applications like Pyth.

Change-Id: Ib49ace163365106b227613d2f66b787b3e5f5461
2021-07-19 07:11:45 +00:00
Hendrik Hofstadt 79d846eed1 Update guardian software chain watcher and VAA submitter
Change-Id: I10c05c57e934662ff005e6b50067195502d23c0f
2021-06-29 13:55:44 +02:00
Leo c1d0f165d6 Merge branch 'main' into dev.v2
# Conflicts:
#	bridge/pkg/solana/submitter.go

Change-Id: I45b6e8f398b879915793987c5db38c839e8d1cc9
2021-06-22 18:54:15 +02:00
Leo 79cc6a9f46 bridge: allow specifying skip_preflight in debug VAA submission
This allows forcibly submitting a failing VAA on-chain in cases where
the preflight check would hinder debugging.

It does not change behavior of guardiand.

Co-authored-by: Hendrik Hofstadt <hendrik@nexantic.com>
Change-Id: I63df22049ad27f659dc0638190edd20628b7a338
2021-05-31 13:33:43 +00:00
Leo a2ff5ca73c bridge/debug: add post-vaa-solana command
Co-authored-by: Hendrik Hofstadt <hendrik@nexantic.com>
Change-Id: I482487f39eae1a3aebd1c7fdbe10e5b9c2dd44ad
2021-05-31 13:33:36 +00:00
Leo 45639b18fb bridge/pkg/solana: fix package name and remove unused lockChan
Increase VAA submission timeout.
Change-Id: I5e774f2930e2f0d865d733eee2f0bb01da1b82f3
2021-05-31 13:33:32 +00:00
Leo b04dd1cc2f bridge/debug: refactor
Move the debug command out of vaa.go in preparation for adding
additional comments.
Change-Id: Id387eace5d488952331f5d7f16c43b235676df24
2021-05-31 13:27:34 +00:00
jschuldt 16157d339d Add publicrpc endpoint for external clients.
- Distribute raw heartbeats via new proto package publicrpc

- Manage channel subscription on client req/close.

- Expose publicprc endpoint in devnet Service.

Change-Id: Ic96d624733961aa56e00b03c3b5cff6af11523a4
2021-05-24 13:38:58 -05:00
Hendrik Hofstadt 9f514e2786 rename ChainLock to MessagePublication
Change-Id: If74e74c00957c202c7de1cc61204b6cc12ad3a8a
2021-04-19 14:27:06 +02:00
Leo a0633645cb bridge: delete vaa-test commands
These no longer compile, and using a manual process to generate test
fixtures is not ideal anyway.

Change-Id: Ic1f378f330699909a403ba429a527c825fd0fba9
2021-04-17 14:59:24 +00:00