Leo
d1c86a0eaa
bridge: use new eth devnet addresses and keygen
2020-08-19 17:38:55 +02:00
Hendrik Hofstadt
59449a30b3
Update VAA structure
2020-08-19 16:41:25 +02:00
Leo
d6ef9c932c
bridge: listen to eth lockups and aggregate signatures from all nodes
...
Improved devnet setup to generate deterministic node and guardian keys.
Devnet setup routine that configures a dynamic guardian set on Ethereum.
Configurable number of nodes in Tiltfile.
2020-08-19 14:24:38 +02:00
Leo
69d8125c67
ethereum: emit guardian set IDs in LogGuardianSetChanged
...
go-ethereum is having trouble parsing a log with structs.
2020-08-19 11:47:29 +02:00
Leo
8b34a3c534
ethereum: add getGuardianSet accessor
2020-08-18 16:19:28 +02:00
Leo
12873e5819
Add tooling to regenerate the Go ABI
2020-08-17 23:02:06 +02:00
Leo
a1dcc36df9
Handle ipfslog.SetLogLevel error
2020-08-17 23:02:06 +02:00
Leo
760d5541b7
Move loadGuardianKey and ethLockupProcessor out of main.go
2020-08-17 19:36:17 +02:00
Leo
7903402fa6
Deterministic hashes for ETH lockups
...
We're missing a nonce for truly unique hashes - for now, two
identical transfers will only be executed once.
2020-08-17 19:29:25 +02:00
Leo
bc3714fc73
Add nodeName to override hostname in gossip
2020-08-17 19:22:12 +02:00
Leo
955bcc93fe
bridge: devnet guardian key generation
2020-08-17 18:20:28 +02:00
Leo
9171eb89cb
Import Hendrik's vaa-test
2020-08-17 16:33:02 +02:00
Leo
e548bbbee3
devnet: add send-lockups.js truffle script to generate test lockups
2020-08-17 16:31:48 +02:00
Leo
d049aa08e7
pkg/ethereum: fix watcher lifecycle
2020-08-17 14:56:22 +02:00
Leo
c4d53247d3
bridge: fix p2p routine restart
...
Turns out, libp2p cannot be cleaned up so till this is fixed,
we have to exit if p2p dies.
Expose the root context to p2p and cancel it.
2020-08-17 14:55:51 +02:00
Leo
090d0aca84
bridge: split up guardiand/main.go
2020-08-17 12:29:52 +02:00
Leo
bdf164a5b5
bridge: signal readiness
2020-08-17 12:25:16 +02:00
Leo
24d38b12ea
bridge: default to 15 blocks ETH lockup
2020-08-17 12:14:57 +02:00
Leo
8174679360
Remove unused chainlink imports
...
We're not going to use Schnorr/threshold signatures for now -
turns out, multisigs are cheaper on ETH.
Ran `go mod tidy`.
2020-08-16 19:05:32 +02:00
Leo
2744c1df25
bridge: heartbeat, eth watcher service
2020-08-16 17:05:58 +02:00
Leo
28fef7efca
bridge: make sure the process crashes if we can't connect to any bootstrap peers
...
Supervisor rescheduling doesn't do the trick since the p2p socket doesn't clean up reliably.
2020-08-16 15:02:11 +02:00
Leo
7fc59ec5f4
Add Solana devnet and have agents talk to it
2020-08-15 23:54:44 +02:00
Leo
d8c9b41a01
Add builds for protos and the Solana agent
...
- Build buf and protoc-gen-go and use it to build Go proto packages
- Rename agent proto package to agent.v1 (to prevent namespace collisions and conform to buf's standards)
- Default to DOCKER_BUILDKIT=1 for CI setup
- Add incremental Docker build for solana/agent
- Move build machinery to top level
2020-08-15 22:15:26 +02:00
Hendrik Hofstadt
6e5a3fa118
Update ETH smart contract for new signature schema
2020-08-15 00:09:48 +02:00
Hendrik Hofstadt
2a096790d3
new VAA format in Golang
2020-08-14 22:45:45 +02:00
Hendrik Hofstadt
0e69aa4ddc
remove requirement for half_q on pub key x
...
Schnorr signatures don't have the ecdsa malleability vulnerability, also we protect against malleable signatures by tracking consumed VAAs using their body hash.
The check was implemented because the author assumed that ecrecover in the EVM does not accept s < HALF_Q values for malleability protection. There were 2 misconceptions:
1. pubkey_x is passed in as r and not s, 2. the check is not enforced in the precompiled evm instruction.
2020-08-10 21:08:57 +02:00
Hendrik Hofstadt
9a4e1f396d
Track confirmations in watcher
2020-08-06 19:14:31 +02:00
Hendrik Hofstadt
b6c85217b6
Add ETH tracking
2020-08-06 15:43:45 +02:00
Hendrik Hofstadt
b3832ab8c7
Fully implement U256; add source_address to transfer VAA
2020-08-05 13:12:54 +02:00
Hendrik Hofstadt
dece1a6a90
Fix protocol compatibility and increase VAA test coverage
2020-08-05 12:28:44 +02:00
Hendrik Hofstadt
a1ba223361
Remove duplicate CL libraries, add signing logic to VAA
2020-08-05 10:48:43 +02:00
Hendrik Hofstadt
8f333ba0fd
Fix chainlink key generation/validation
2020-08-04 23:52:39 +02:00
Hendrik Hofstadt
7993a72dea
Add VAA serialization logic
2020-08-04 23:43:16 +02:00
Leo
540e39296a
bridge: README stub
2020-08-04 19:52:41 +02:00
Leo
2a81b445b1
Import Chainlink's Distributed Schnorr implementation
...
Unmodified except for imports and addition of license files.
2020-08-04 19:52:41 +02:00
Leo
a7d17cf5aa
Add persistent keys and bootstrap peer
...
This connects all nodes to a full mesh.
2020-08-04 12:15:51 +02:00
Leo
b8c2efdf86
Simple local devnet for development
2020-08-04 12:15:51 +02:00
Leo
dd8b2ade81
libp2p stub that can find peers on a private network
...
Test Plan:
go run github.com/certusone/wormhole/bridge/cmd/guardiand -network wormhole-dev -port 9000 &
go run github.com/certusone/wormhole/bridge/cmd/guardiand -network wormhole-dev -bootstrap /ip4/127.0.0.1/udp/9000/quic/p2p/<id> -port 9001
2020-08-04 12:15:51 +02:00
Leo
39eb919aaa
Import supervision tree from internal SignOS repo
...
Once SignOS is public, we can un-vendor this.
2020-08-04 12:15:51 +02:00