Leo
bc48b1b51d
node: add spy service
...
Change-Id: Ieb04e6d26c7778d8a8afbbeaee79d764d9f2cd31
2021-12-03 02:01:56 +01:00
Leo
8800d7bfd3
*: add ropsten chainID and guardiand implementation
...
Change-Id: Ib99316c28237d946eb2b6d013f4e275a620d4aa8
2021-11-22 22:32:36 +00:00
Leo
2396adc2c5
node/cmd/guardiand: batched submission of governance messages
...
Change-Id: I1f8541a89fb1ef3b5bafaede43a8481634cd3451
2021-10-29 19:08:45 +00:00
Leo
c64576cc0b
node: add Polygon support
...
Change-Id: Ia919861879eb6c831d4dd9ccbe1748e7123502e5
2021-10-21 10:11:21 +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
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
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
8979ccbeae
node: configurable module for BridgeRegisterChain
...
Change-Id: If2685e9fee4997c80a00895c244793c52f30214c
2021-10-01 12:26:05 +02: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
2022b55fd4
node: add token bridge governance VAA support
...
Change-Id: I731161f03590ce73145a1686eb2e62cfe19c8223
2021-10-01 09:43:18 +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
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
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
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
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
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
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
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
9c9c48ef3b
Migrate proto generation to buf
...
Bug: certusone/wormhole#282
Change-Id: Ib20d8b9bcf19a26b12a586532281d83e95f0653e
2021-07-31 03:03:36 +02:00
Leo
ee34086c39
proto: remove fee payer from heartbeat
...
This wasn't implemented in v1
Change-Id: I271c8abe2b3bb79462e54d6fa37afd235e310df8
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
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
6d1b3d2651
Adapt solana agent for v2
...
Change-Id: I81fc8b959f33a157371d1c59b1d5323dfc11f1ce
2021-06-30 06:46:56 +00:00
Justin Schuldt
3b294c586a
Use full import path in proto's go_package
...
Change-Id: I1f3592512804ad92506914eda67d9ce59effdc0e
2021-06-01 19:04:49 +00: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
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
Leo
9c1d6ee00c
bridge: add network heights and guardian address to heartbeat message
2021-02-10 01:57:54 +01:00
Leo
5256d2025a
bridge: refuse to use deterministic keys in production
2021-01-29 12:40:55 +01:00
Leo
6d555789d6
Add version stamp to binary and include in heartbeat
2021-01-28 21:46:09 +01:00
Hendrik Hofstadt
fd6c54de83
bridge/pkg/solana: use polling GetProgramAccounts watcher ( #156 )
...
This mitigates https://github.com/solana-labs/solana/issues/9909 by
polling GetProgramAccounts with a server-side filter. It also removes
the agent dependency for the lockup observation logic - the agent is now
used for transaction construction only.
2021-01-21 11:31:32 +01:00
Hendrik Hofstadt
efa03ef73c
Implement upgradeability ( #151 )
...
* Implement contract upgrade VAA action
* naming and (╯°□°)╯︵ ┻━┻
* Carefully unflip table and replace broken cutlery ┬─┬ノ( ◕◡◕ ノ)
* fix and automate upgradeability
* document contract upgrade call
* Update comments
* Exhaustiveness check in VAA payload switch
* Fix typo
Co-authored-by: Leo <leo@certus.one>
2021-01-19 13:01:45 +01:00
Hendrik Hofstadt
12a6ae31bc
Watch slots for Solana liveness monitoring ( #141 )
...
* add slot notifications to the agent
* fix proto field naming
2021-01-11 12:43:05 +01:00
Leo
70eddbee6e
Document our security assumptions
2020-11-27 18:51:32 +01:00
Leo
471417cd6e
bridge: use GPG-armored binary protobufs for keys
2020-11-20 22:40:42 +01:00
Leo
0152a00114
all: rename LockupObservation to SignedObservation
...
We observe things other than lockups, account for it.
2020-11-20 22:35:00 +01:00
Leo
66430cb5be
bridge: implement guardian set update submission node admin service
...
Tested on a live devnet via `scripts/test-injection.sh 0`.
ghstack-source-id: 92489c2455
Pull Request resolved: https://github.com/certusone/wormhole/pull/104
2020-11-19 12:57:21 +01:00
Leo
d9f8174d76
bridge: implement bridge key serialization
...
ghstack-source-id: f218021514
Pull Request resolved: https://github.com/certusone/wormhole/pull/90
2020-11-19 12:57:21 +01:00
Hendrik Hofstadt
cee28540bd
Upgrade SDK; add balance rpc call ( #80 )
2020-11-13 14:14:56 +01:00
Leo
d151c95d82
node.proto stub and dependencies
...
ghstack-source-id: 2343d22a0e
Pull Request resolved: https://github.com/certusone/wormhole/pull/62
2020-10-28 22:47:12 +01:00
Hendrik Hofstadt
f6750a3762
all: consider decimals on wrapped assets, fix VAA posting, fix solana account parsing
2020-08-28 15:10:42 +02:00
Leo
72289be8ee
Wire up Solana lockup watcher
2020-08-21 20:49:33 +02:00
Hendrik Hofstadt
549f7ad69c
solana: track time on lockups
2020-08-21 19:51:45 +02:00
Hendrik Hofstadt
e0c2fbf990
agent: add lockup_address
2020-08-21 17:58:35 +02:00