Leo
a4653eac36
node/cmd: add admin dump-vaa-by-message-id command
...
Change-Id: I1cba29582b23b8dfeb77cc4a2fe143ca7113a88f
2021-10-29 21:02:07 +00:00
Leo
f59f4bbb2e
node/pkg/processor: ignore late observations for quorum VAAs
...
This avoids gossip spam and false positive Discord notifications
when a connected node catches up and late observations are made.
Change-Id: If9562661487d3d3d5138d27298b005f278f9e9ce
2021-10-29 19:14:05 +00:00
Leo
24ee63d9a1
node/pkg/processor: increase confirmed VAA timeout to five days
...
This'll make governance more relaxed.
Change-Id: I55946058f01ec4f08f60670725522f6d7d9346bb
2021-10-29 19:13:52 +00:00
Leo
7bd5643c0c
node/cmd: default to guardian set index 1
...
This prevents the field from being omitted due to defaulty-ness.
Change-Id: Iae6d3887edf2b10dd2dfcd73b4f53120633fe02e
2021-10-29 19:13:40 +00:00
Leo
feb9919c0d
node/pkg/db: document that VAAs may be stored multiple times
...
Change-Id: Ia32036b7e0f6afbe677a031628a3ed78f98184b7
2021-10-29 19:13:17 +00:00
Leo
db4d325cb6
node/pkg/p2p: expose network guardian version metric
...
Fixes https://github.com/certusone/wormhole/issues/305
The logic to do this seemingly simple task is hilariously complex
due to the version string being attacker-controlled.
Change-Id: Ia1758418a67c082595affe0b7f2bb801e9434733
2021-10-29 19:13:14 +00:00
Leo
621962982a
node/pkg/common: guardian set state node cleanup
...
This feature is dedicated to Chorus One, who really like to rotate
node keys! :-)
https://github.com/certusone/wormhole/issues/304
Change-Id: Ic0f1e52095676222970752b1e2ac893d7f0915ec
2021-10-29 19:13:10 +00:00
Leo
2396adc2c5
node/cmd/guardiand: batched submission of governance messages
...
Change-Id: I1f8541a89fb1ef3b5bafaede43a8481634cd3451
2021-10-29 19:08:45 +00:00
Leo
d5f6540656
node/cmd/guardiand: governance template improvements
...
The template commands now support generating full governance messages
with all required fields. Outputs to stdout instead of a file.
Change-Id: I3837107c3075363a54d31f9dfb4d6dc07c79daa5
2021-10-29 19:08:45 +00:00
Leo
964566c559
node/cmd: add missing bsc and polygon readiness registrations
...
This would cause the readiness check to not detect failures.
Change-Id: I7f38e8a201929bb10a71bc707a3513b565b05960
2021-10-29 19:08:45 +00:00
justinschuldt
8fed2d0659
remove unused bigtable data
...
Change-Id: I2b4a798b99f11be2ce9869d15dc633e1568974e1
2021-10-29 12:56:27 +00:00
justinschuldt
5f1e5dd211
save inbound VAA to bigtable
...
Change-Id: Id8ca26088daff3734a32d061029231d5846a020e
2021-10-29 10:09:48 +00:00
Leo
1ccd9eef12
node/cmd: fix typo in list-nodes command
...
Change-Id: I1b56dd4eeea32d05e7ae5c2524cfce1197c0154a
2021-10-27 14:20:02 +00:00
Leo
9ba59fa2b2
node/cmd: fix infura warnings
...
The string can appear anywhere.
Change-Id: Ib45acc8e3b24308446434b29a709ebf532bcb30a
2021-10-27 14:20:02 +00:00
Leo
c64576cc0b
node: add Polygon support
...
Change-Id: Ia919861879eb6c831d4dd9ccbe1748e7123502e5
2021-10-21 10:11:21 +00:00
Leo
f275823461
node/cmd: blacklist mainnet.infura.io
...
Change-Id: I13335a80ba7b241beca30737384114b0e7b771c4
2021-10-19 14:29:23 +00:00
justinschuldt
71dbe80aae
BigTable historical queries
...
- Add Cloud Functions:
- "Recent" gap list, can filter and/or group by chain or address.
- "Totals" counts 24h, 30d, rolling daily. can filter and group.
- "Transaction" lookup row by chain-native transaction identifier.
- Pad sequence in rowkey to fixed length, for sequential row order.
- Add Cloud Function deploy instructions.
- Fix #410 Buildpack image cleanup
Change-Id: Ifa3110a3d58e2f94adb48ccb451c27ab3add0611
2021-10-13 16:20:10 +00:00
Leo
1d1422e416
node/cmd: hex-encoded address for ContractUpgrade
...
For consistency
Change-Id: Ife43c1381ad3933524d895145c5bdb865ef9f1e7
2021-10-12 21:48:44 +00:00
Leo
06794baaac
node/cmd: ChainID uint8 -> uint16
...
This was changed in v2 and not yet updated here.
Change-Id: Ia35a5a025df0b096f3f94137ef291c458d726bc6
2021-10-12 21:48:44 +00:00
Leo
ee81e667d3
node/pkg/processor: kill "received observation by unknown guardian"
...
Log message keeps causing confusion even at WARN level
(who would've thought :D)
Change-Id: I3dc7d0ed054f1531a69953ebccee053f58f81ad5
2021-10-12 21:48:44 +00:00
Leo
6fd6cb9f02
node: add BridgeUpgradeContract governance VAA
...
Example VAA produced by the template:
(*vaa.VAA)(0xc0004f4510)({
Version: (uint8) 1,
GuardianSetIndex: (uint32) 0,
Signatures: ([]*vaa.Signature) (len=1 cap=1) {
(*vaa.Signature)(0xc0003b0370)({
Index: (uint8) 0,
Signature: (vaa.SignatureData) (len=65 cap=65) 0f97ec9093c21ccc4ce544898ed5c21b66ab4c90be894642fbb43474ed9fb48a26d6e12f3397b9fdab160fee64e797d26599a2a9d81a4bf4bc98970b5fa5122501
})
},
Timestamp: (time.Time) 1970-01-01 00:00:00 +0000 UTC,
Nonce: (uint32) 1375049878,
Sequence: (uint64) 3557202656914991802,
ConsistencyLevel: (uint8) 32,
EmitterChain: (vaa.ChainID) solana,
EmitterAddress: (vaa.Address) (len=32 cap=32) 0000000000000000000000000000000000000000000000000000000000000004,
Payload: ([]uint8) (len=67 cap=1000) {
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000010 00 00 00 00 00 54 6f 6b 65 6e 42 72 69 64 67 65 |.....TokenBridge|
00000020 02 00 05 00 00 00 00 00 00 00 00 00 00 00 00 02 |................|
00000030 90 fb 16 72 08 af 45 5b b1 37 78 01 63 b7 b7 a9 |...r..E[.7x.c...|
00000040 a1 0c 16 |...|
}
})
Change-Id: Ibe95db01e1bc0a9c36e1be06920a389db886fdd1
2021-10-11 12:54:51 +00:00
Leo
659b7b2547
node: add Discord notifications for missing signatures
...
Change-Id: If09643c2e02c4c166577082cd9be9124d2e775d4
2021-10-06 14:12:21 +02:00
Leo
c1502bce13
node/pkg/solana: do not re-trigger scheduled recovery past schedule
...
Change-Id: I2df48c868caa0b5d93fc5ae53e154ceca0e9a4d7
2021-10-06 12:41:58 +02:00
Leo
3738d010c7
node: bump dlv for Go 1.17 compat and expose it via Tilt
...
Drive-by fix Tiltfile formatting.
Change-Id: I4455db1a5dd8096beae586e119fee119e61a09ba
2021-10-06 12:41:58 +02:00
Leo
894fd7c694
node/pkg/solana: add more accounts to be recovered
...
Change-Id: Ifed655e521a32508fc2b00dde38187abc71185cc
2021-10-05 11:16:21 +02:00
Leo
707c5caa9b
node/hack: add example RPC account traversal script
...
Change-Id: If61ac6185f9173c489c8ddee5d4c60edf734ff20
2021-10-05 11:16:21 +02:00
Leo
b577b70b2e
node: add MessageID to observation messages
...
This allows us to associate an observation from the log
for messages that the local node did not observe.
Change-Id: I6ece7bfe3e6b878bdb7ee4ac03c81cb424a329b3
2021-10-04 23:31:00 +02:00
Leo
c253f769fa
node: add FindMissingMessages admin RPC method
...
Change-Id: I57c1227c1a591e10f5e77b3553216915df247d65
2021-10-04 23:31:00 +02:00
Leo
6b312b3add
node/proto: sequence number is uint64
...
Change-Id: I098a6e9a40d52336b4307a9827d2a6f92e06d6cd
2021-10-04 16:35:32 +02:00
Leo
39b41c2d6c
node/pkg/processor: reinstate source label
...
This was lost when removing the v1 submission logic.
Fixes certusone/wormhole#440
Change-Id: Ic997421aed88f64949e2dd3c55ad9230cb80ea3d
2021-10-04 11:56:22 +02:00
Leo
a7ffd8db0f
node/pkg/vaa: ChainIDUnset constant
...
Change-Id: I909a0eda58a6abfa36c71ff24bd1fcdad3014832
2021-10-04 11:56:22 +02:00
Leo
bd5f957e1b
node: remove unused terraChainID command line flag
...
Change-Id: I5f02faa3f00098725e7242c289f65978c4879c3c
2021-10-03 21:03:43 +02:00
Leo
92d3ee577c
node/pkg/solana: log quorum and emitter chain on settled VAAs
...
Change-Id: I8162ed3bfb77d0708a9dd910eb1ba757d73bc246
2021-10-01 16:18:16 +02:00
Leo
3ebde5ded9
node/pkg/solana: multiple empty retries
...
Change-Id: Ic5558220039a0874e06527a473e6ee3b0accdf54
2021-10-01 15:19:36 +02:00
Leo
d5062af533
node/pkg/solana: silently ignore non-PostMessage transactions
...
These were already ignored, but loudly.
Change-Id: Ifdd2199593ae372a5f598a018a782db112108f16
2021-10-01 14:46:20 +02:00
Leo
2a1eaf5163
node/pkg/solana: demote log message to warning
...
This seems to happen quite frequently.
Change-Id: Ibb9b975566974974e0a3ba61ae126f49ace6a99a
2021-10-01 14:40:55 +02:00
Leo
e7df95839d
node/pkg/solana: retry skipped slots only once
...
Adds extra logging to validate hypothesis that we've found a bug in
GetConfirmedBlocks, rather than a general issue.
Change-Id: Ia3acfd7fa393091a3892c453433255cfbe38e4a0
2021-10-01 14:06:51 +02:00
Leo
b771ad0e2a
node/pkg/solana: move recovery date to Oct 5
...
Change-Id: Ib4b330b7d651cf5ccb5e349d805a62cd43a029d6
2021-10-01 12:38:17 +02:00
Leo
c7bab38c6e
node: fix emitter address encoding for BridgeRegisterChain
...
Change-Id: I2ffef1400448f86feb5bd9dcf89903303649cdf4
2021-10-01 12:27:48 +02:00
Leo
8979ccbeae
node: configurable module for BridgeRegisterChain
...
Change-Id: If2685e9fee4997c80a00895c244793c52f30214c
2021-10-01 12:26:05 +02:00
Leo
a42eb38f2e
node/pkg/solana: remove GetConfirmedBlocks optimization
...
We encountered a bug on mainnet where GetConfirmedBlocks with
commitment level Finalized would fail to return a valid block.
Remove the optimization and simply fetch every slot.
Change-Id: Idce939c6c5f3303a5046efdfd31833fab3d465ba
2021-10-01 09:43:18 +00:00
Leo
16391185ec
node/pkg/processor: log quorum for unsubmitted nil VAAs
...
Change-Id: I4b29e2813209195c7e1698afb6772f2b18ebfde9
2021-10-01 09:43:18 +00:00
Leo
096707a9c4
node/pkg/processor: fix crash when observation is made while gs is nil
...
Rare race condition. Found locally when manually injecting observations.
Change-Id: Id10d10ad4cfe38b5f4b00a30978940e928e6bc96
2021-10-01 09:43:18 +00:00
Leo
0feaed4e80
node: include and log TxHash field in SignedObservation
...
Optional metadata for debugging. Allows tying a received observation
to an on-chain transaction even if the node missed the observation.
Change-Id: Ie50c10c8ab7f65469555674d90645f91092fb2e3
2021-10-01 09:43:18 +00:00
Leo
7a4cac2dde
node/pkg/solana: add more logging to transaction parsing
...
Change-Id: I2529b0c0a7aa7d94802598a7fffbcdbe0ddca5bc
2021-10-01 09:43:18 +00:00
Leo
6ab0fe3855
node/pkg/processor: add more log fields to message observations
...
Change-Id: I19d804b6668623943f798356a7ed81c1000fa377
2021-10-01 09:43:18 +00:00
Leo
ef34c30049
node/pkg/solana: retry account fetches
...
Change-Id: I310a94a065e883b1a0e200dbd3321d2ec2e03fc0
2021-10-01 09:43:18 +00:00
Leo
2022b55fd4
node: add token bridge governance VAA support
...
Change-Id: I731161f03590ce73145a1686eb2e62cfe19c8223
2021-10-01 09:43:18 +00:00
Leo
7998d04554
node/pkg/processor: increase timeout for observed VAAs to 24 hours
...
In cases where we observed a VAA, there is no possibility of gossip DoS.
Increase the timeout to 24 hours to facilitate manual interventions
(like submission of governance VAAs or node restarts/catchup).
Keep the existing five minute timeout for observation-less VAAs.
Change-Id: Ic626108190bd60cf812daadbe191b31cc48c7296
2021-10-01 09:43:18 +00:00
Hendrik Hofstadt
b01ad107e7
Add governance VAA initializer
...
Change-Id: I4c5a050e5b17ed8b278f91e26bf61adacc45ecc5
2021-09-30 16:57:04 +00:00
Hendrik Hofstadt
6bbc1f7ad4
node: Add chain registration payload
...
Change-Id: I0c7d7a5c3d776c924e8ab54314b8b99ab2483a4f
2021-09-30 15:47:53 +00:00
Leo
b641101158
node/pkg/solana: add two more transactions to be recovered
...
Change-Id: I54e6ca7a54a9c62e93eeaf8abcd2ef6f057eee8d
2021-09-30 10:26:07 +02:00
Leo
d91e16e077
node/pkg/solana: fetch recovery config from repository
...
Chances are that more requests will fail until the scheduled
recovery date, so we can't hardcode them.
Change-Id: Ief45c1f7a455827b32e154fae5c8eed366dd3ff7
2021-09-30 10:22:14 +02:00
Leo
6e4d578041
node/pkg/solana: fix s.logger data race
...
Surfaced by the retry code:
https://gist.github.com/leoluk/b5d05ed27269b077b834eda771a50058
Accessing s.logger from a goroutine will cause a data race. We didn't
previously encounter this since supervisor would wait for Run() to
return before rescheduling it.
Change-Id: I56a7503081485e58975103d0e25e0c2baf19ca08
2021-09-30 01:05:37 +02:00
Leo
c99c11db0a
node/pkg/solana: add scheduled account recovery for 2021-10-03Z11:00
...
Test: https://gist.github.com/leoluk/b613cf717b3047b67d0baf50c892a651
Change-Id: I8b51f940584227887724396094771c14fb4c829c
2021-09-30 00:43:06 +02:00
Leo
a6fe7fc54c
node/pkg/solana: add delay for retries
...
Change-Id: I106300e802420ef50f1309825aecf37bb18d4c20
2021-09-29 23:16:04 +02:00
Leo
c0bee5e5f0
node/pkg/solana: retry failed requests
...
Change-Id: I4ee6e0c16c3c6f392ad1d6dbf4b20bdbe9c70f47
2021-09-18 10:48:32 +02:00
Leo
305fcdc393
node/pkg/publicrpc: handle nil req.MessageID
...
Change-Id: Id43ef898a687bb5ad4b2a80ed42b08aca538ea26
2021-09-17 20:29:40 +02:00
Leo
7914512797
node: handle inbound SignedVAAWithQuorum messages
...
Change-Id: I539155bb4e59d728ea528e6e2f70b6fbb3338a41
2021-09-13 17:51:47 +00:00
Leo
ec07ed0288
node: broadcast a SignedVAAWithQuorum message when a VAA reaches quorum
...
Change-Id: I5dbefcbcf146bda6e3ef9607a7b49ca1cdf5321d
2021-09-13 17:51:47 +00:00
Leo
9a85dbafe5
Add Go linting stage to CI
...
rustfmt appears to be a little more complicated since it wants to
download dependencies and needs nightly Rust.
Change-Id: Ia348def30a6459ae2ab6c29a8c3a413216f5eb4b
2021-08-31 08:58:17 +00:00
Leo
4f22a44969
Bump Go to 1.17
...
Change-Id: Ideb635db1a553c5de4a0b700a080f935249990fb
2021-08-31 08:58:17 +00:00
Leo
4ac19518bd
node: remove remaining "bridge" mentions
...
Ensure there's no core vs. token bridge ambiguity.
Breaking changes to the CLI:
* "guardiand bridge" CLI is now "guardiand node"
* --solanaBridgeAddress is now --solanaContract
* --bridgeKey is now --guardianKey
The Heartbeat proto message had one of its fields renamed from
BridgeAddress to ContractAddress, but this won't break the wire
format and the only consumer appears to be the CLI.
Change includes a "go mod tidy" - it insisted.
Change-Id: Id8b312827737f07f2d5f3944ebce469d946e7f51
2021-08-31 08:58:17 +00:00
Leo
e98463cfe3
node: rename bridge/ to node/
...
Calling guardiand a bridge dates back to v1 and no longer makes sense.
Change-Id: I27d24a5d7a64c3e37d6a5ce9c402c6248ad9c59e
2021-08-26 11:36:36 +02:00