Commit Graph

2596 Commits

Author SHA1 Message Date
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
Hendrik Hofstadt f8e70efb0b Fixes for actual CPI usage and variable VAA size 2020-08-17 21:02:04 +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 2c2a3c6c8e Add Apache2 license 2020-08-17 19:17:12 +02:00
Leo ca2a2d9686 Remove deleted token crate from workspace 2020-08-17 18:25:46 +02:00
Leo 955bcc93fe bridge: devnet guardian key generation 2020-08-17 18:20:28 +02:00
Hendrik Hofstadt e040449197 Working transfer in 2020-08-17 17:06:21 +02:00
Leo 2f526ff136 Tiltfile: Remove outdated comment 2020-08-17 16:43:09 +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 f9b3a6195f eth-devnet is deterministic and does not need volumes 2020-08-17 12:15:56 +02:00
Leo 24d38b12ea bridge: default to 15 blocks ETH lockup 2020-08-17 12:14:57 +02:00
Leo 63a601030d devnet: automatically run tests 2020-08-17 12:11:50 +02:00
Leo dc7a2147b7 devnet: fix generation of deterministic contract addresses
We previously had an extra contract that was deleted, which
changed the contract addresses.

As a workaround, deploy Wormhole twice to fix the tests.
2020-08-17 12:03:16 +02:00
Leo 6ec5ffb1ce Tiltfile: remove live_update for Ethereum now that the build is fast 2020-08-17 11:58:18 +02:00
Leo b7512c9203 ethereum: only invalidate npm install if package.json changed
Thanks Lorenz :D
2020-08-17 11:19:14 +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 369ab27200 devnet: reduce guardian replicas to 5
Enough for a 2/3+ majority, significantly less annoying to work with
(the rolling deployment updates pods one at the time).
2020-08-16 14:03:59 +02:00
Leo 3451526e01 devnet: add faucet port to solana-devnet service
No need for a separate service, it's the same pod.
2020-08-16 13:59:05 +02:00
Hendrik Hofstadt 49d2872d9c Update devnet and Solana program 2020-08-16 13:21:39 +02:00
Leo c8dae177e6 Tiltfile: document the right sync mode for incremental sync to work 2020-08-16 12:30:23 +02:00
Leo 186129e5e4 Tiltfile: WIP live_update for ethereum contracts 2020-08-16 12:10:03 +02:00
Leo e39469f817 ethereum: install git
Required for properly installing truffle.
2020-08-16 11:25:37 +02:00
Leo 784c35e48d Tiltfile: ignore local node_modules 2020-08-16 11:17:35 +02:00
Leo 4e6d1079f6 generate.sh: compile buf 2020-08-16 11:09:03 +02:00
Leo 294e256c74 third_party/solana: fix syscall patch
It's not applying, but at least it fails properly now!
2020-08-16 11:04:26 +02:00
Leo 487de66f40 solana: rebase onto master and cherry pick CreateProgram PR 2020-08-16 10:12:55 +02:00
Leo f8b313cab8 ethereum: remove unused Schnorr references from tests 2020-08-16 01:54:49 +02:00
Leo 1094c2cadb ethereum: partially fix npm run test 2020-08-16 01:47:10 +02:00
Leo 4d1610d9f0 eth-devnet deployment 2020-08-16 01:38:10 +02:00
Leo fc7c020553 Add hint how to observe k8s pods 2020-08-15 23:56:33 +02:00
Leo 7fc59ec5f4 Add Solana devnet and have agents talk to it 2020-08-15 23:54:44 +02:00
Leo 61a7d35a02 solana/agent: fix listen address and change port to u16 2020-08-15 23:54:10 +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 08fddb7d54 Update specs 2020-08-15 00:31: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 ca4e4a3243 WIP SPL token integration 2020-08-14 21:33:46 +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 f54fc43118 update claimed vaa doc 2020-08-10 08:48:25 +02:00
Hendrik Hofstadt 47464d7600 basic ETH interaction; WIP Solana interaction 2020-08-10 00:01:18 +02:00