Commit Graph

52 Commits

Author SHA1 Message Date
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