Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
299ea2c
replacing tss package with tssSignerClient.
jonathanMweiss Dec 18, 2025
d3b93c9
unary requests methods and refactoring
jonathanMweiss Jan 6, 2026
8085bc6
inspecting fatal errors
jonathanMweiss Jan 6, 2026
5ba2629
fxs
jonathanMweiss Jan 6, 2026
23bc90d
client-signer basic unit test
jonathanMweiss Jan 6, 2026
c44dcbb
connection to signer
jonathanMweiss Jan 6, 2026
abfa418
refactoring and integration begin
jonathanMweiss Jan 6, 2026
27718b2
wip: observing VAAv1
jonathanMweiss Jan 7, 2026
b5200fb
vaav1 leader's witness and gossip
jonathanMweiss Jan 13, 2026
87d88cb
tssGossiper api. toward leader
jonathanMweiss Jan 13, 2026
cc462c5
gossipListener
jonathanMweiss Jan 14, 2026
ab4c67b
p2p signerconnection integration
jonathanMweiss Jan 14, 2026
07462a1
p2p integration
jonathanMweiss Jan 14, 2026
6bd18ac
signer integrated fully to guardian.
jonathanMweiss Jan 14, 2026
888f41c
fx: p2p unit test for TssGossipListener
jonathanMweiss Jan 15, 2026
5e6f602
added unary call for key update
jonathanMweiss Jan 25, 2026
2f27d2d
fix: verifyGossipSig ensures leader is in current guardianSet
jonathanMweiss Jan 25, 2026
0e61842
fix nits: import with two different names and debug log
jonathanMweiss Jan 25, 2026
c1279c2
fix: ensure guardian set is not nil
jonathanMweiss Jan 25, 2026
c486d02
added comment
jonathanMweiss Jan 25, 2026
5fe3d5a
context.TODO removed
jonathanMweiss Jan 25, 2026
1a3ce5e
dropping incoming messages from server (with log) on full channels.
jonathanMweiss Jan 25, 2026
6dbf836
improved unit tests
jonathanMweiss Jan 25, 2026
6ce99de
adding config to the signer client
jonathanMweiss Jan 25, 2026
d4b8a79
integrating protocol fetching from signer config
jonathanMweiss Jan 25, 2026
6dc26a3
fix: gossiper checks committee size
jonathanMweiss Jan 25, 2026
a8d3ddd
removed unused value from proto
jonathanMweiss Jan 25, 2026
4e39b3a
removed unneeded line
jonathanMweiss Jan 25, 2026
966ecc7
removed unneeded line
jonathanMweiss Jan 25, 2026
503f5c9
removed double space from error message
jonathanMweiss Jan 25, 2026
cbd4b4a
removed todo
jonathanMweiss Jan 25, 2026
7498324
fix comment
jonathanMweiss Jan 27, 2026
9cc8acf
removed context.Background, passing ctx from Processor.Run to inner f…
jonathanMweiss Jan 27, 2026
ca99387
removed todo
jonathanMweiss Jan 27, 2026
79b8941
removed empty line
jonathanMweiss Jan 27, 2026
da59334
allowing leader from outside guardianset. changing comments
jonathanMweiss Jan 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions node/cmd/guardiand/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ import (
"time"

"github.com/certusone/wormhole/node/pkg/guardiansigner"
"github.com/certusone/wormhole/node/pkg/tss"
"github.com/certusone/wormhole/node/pkg/watchers"
"github.com/certusone/wormhole/node/pkg/watchers/ibc"
ethcommon "github.com/ethereum/go-ethereum/common"
ethcrypto "github.com/ethereum/go-ethereum/crypto"

"github.com/certusone/wormhole/node/pkg/watchers/cosmwasm"
Expand Down Expand Up @@ -73,7 +73,11 @@ var (
guardianKeyPath *string
guardianSignerUri *string

tssSecretsPath *string
tssTLSCertPath *string
tssTLSKeyPath *string
tssSignerAddr *string
tssLeaderAddr *string
tssConfigurationsPath *string

ethRPC *string
ethContract *string
Expand Down Expand Up @@ -324,7 +328,11 @@ func init() {
fogoContract = NodeCmd.Flags().String("fogoContract", "", "Address of the Fogo program (required if fogoRpc is specified)")
fogoShimContract = NodeCmd.Flags().String("fogoShimContract", "", "Address of the Fogo shim program")

tssSecretsPath = NodeCmd.Flags().String("tssSecret", "", "Path to guardian tss secrets (required)")
tssTLSCertPath = NodeCmd.Flags().String("tssTLSCert", "", "Path to guardian tss TLS certificate (required for secure connections)")
tssTLSKeyPath = NodeCmd.Flags().String("tssTLSKey", "", "Path to guardian tss TLS key (required for secure connections)")
tssSignerAddr = NodeCmd.Flags().String("tssSignerAddress", "127.0.0.1:9973", "Path to guardian tss socket (address:port for TCP connections)")
tssLeaderAddr = NodeCmd.Flags().String("tssLeaderAddress", "", "ethereum address (as hex) of the guardian that is the TSS leader")
tssConfigurationsPath = NodeCmd.Flags().String("tssConfigurations", "", "Path to guardian tss configurations JSON file (optional)")

ethRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "ethRPC", "Ethereum RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"})
ethContract = NodeCmd.Flags().String("ethContract", "", "Ethereum contract address")
Expand Down Expand Up @@ -763,8 +771,10 @@ func runNode(cmd *cobra.Command, args []string) {
logger.Fatal("failed to create a new guardian signer", zap.Error(err))
}

logger.Info("Created the guardian signer", zap.String(
"address", ethcrypto.PubkeyToAddress(guardianSigner.PublicKey(rootCtx)).String()))
guardianSignerAddress := ethcrypto.PubkeyToAddress(guardianSigner.PublicKey(rootCtx))
logger.Info("Created the guardian signer",
zap.String("address", guardianSignerAddress.String()),
)

// Load p2p private key
var p2pKey libp2p_crypto.PrivKey
Expand Down Expand Up @@ -1883,21 +1893,11 @@ func runNode(cmd *cobra.Command, args []string) {
}
}

tssGuardianStorage, err := tss.NewGuardianStorageFromFile(*tssSecretsPath)
if err != nil {
logger.Fatal("failed to load the guardian's threshold signature scheme's secrets", zap.Error(err))
}
logger.Info("Loaded the guardian's threshold signature scheme's storage")

reliableTss, err := tss.NewReliableTSS(tssGuardianStorage)
if err != nil {
logger.Fatal("failed to start tss engine", zap.Error(err))
}

guardianNode := node.NewGuardianNode(
env,
guardianSigner,
reliableTss,
)

var guardianAddrAsBytes []byte
Expand All @@ -1906,6 +1906,7 @@ func runNode(cmd *cobra.Command, args []string) {
}

guardianOptions := []*node.GuardianOption{
node.GuardianOptionTSS(guardianSignerAddress, ethcommon.HexToAddress(*tssLeaderAddr), *tssConfigurationsPath, *tssSignerAddr, *tssTLSCertPath, *tssTLSKeyPath),
node.GuardianOptionDatabase(db),
node.GuardianOptionWatchers(watcherConfigs, ibcWatcherConfig),
node.GuardianOptionAccountant(*accountantWS, *accountantContract, *accountantCheckEnabled, accountantWormchainConn, *accountantNttContract, accountantNttWormchainConn),
Expand All @@ -1917,7 +1918,6 @@ func runNode(cmd *cobra.Command, args []string) {
node.GuardianOptionStatusServer(*statusAddr),
node.GuardianOptionAlternatePublisher(guardianAddrAsBytes, *additionalPublishers),
node.GuardianOptionProcessor(*p2pNetworkID),
node.GuardianOptionTSSNetwork(),

// Keep this last so that all of its dependencies are met.
node.GuardianOptionP2P(
Expand Down
60 changes: 29 additions & 31 deletions node/go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
module github.com/certusone/wormhole/node

go 1.23.3
go 1.24.0

toolchain go1.24.5

require (
github.com/cenkalti/backoff/v4 v4.2.0
Expand All @@ -27,17 +29,17 @@ require (
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.14.0
github.com/status-im/keycard-go v0.0.0-20200402102358-957c09536969 // indirect
github.com/stretchr/testify v1.9.0
github.com/stretchr/testify v1.11.1
github.com/tendermint/tendermint v0.34.24
github.com/tidwall/gjson v1.15.0
go.uber.org/zap v1.27.0
golang.org/x/crypto v0.28.0
golang.org/x/sys v0.26.0
golang.org/x/crypto v0.41.0
golang.org/x/sys v0.35.0
golang.org/x/time v0.5.0
google.golang.org/api v0.126.0
google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 // indirect
google.golang.org/grpc v1.57.1
google.golang.org/protobuf v1.36.10
google.golang.org/grpc v1.76.0
google.golang.org/protobuf v1.36.11
)

require (
Expand All @@ -61,15 +63,15 @@ require (
github.com/prometheus/common v0.60.0
github.com/wormhole-foundation/wormchain v0.0.0-00010101000000-000000000000
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20220926172624-4b38dc650bb0
github.com/xlabs/multi-party-sig v0.0.2-0.20251008145440-ef00c6484b73
github.com/xlabs/tss-common v0.0.0-20251006064114-b1fcd9c2ce8e
github.com/xlabs/multi-party-sig v0.0.2-0.20260123131947-80650451a297
github.com/xlabs/tss-common v0.0.0-20260123064940-13b8c984d60d
golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e
google.golang.org/genproto/googleapis/api v0.0.0-20250804133106-a7a43d27e69b
nhooyr.io/websocket v1.8.7
)

require (
cloud.google.com/go/compute/metadata v0.3.0 // indirect
cloud.google.com/go/compute/metadata v0.7.0 // indirect
contrib.go.opencensus.io/exporter/stackdriver v0.13.11 // indirect
filippo.io/edwards25519 v1.0.0 // indirect
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
Expand Down Expand Up @@ -140,12 +142,12 @@ require (
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/flynn/noise v1.1.0 // indirect
github.com/francoispqt/gojay v1.2.13 // indirect
github.com/fxamacker/cbor/v2 v2.8.0 // indirect
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
github.com/gagliardetto/binary v0.7.7 // indirect
github.com/gagliardetto/treeout v0.1.4 // indirect
github.com/go-kit/log v0.2.1 // indirect
github.com/go-logfmt/logfmt v0.6.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-openapi/analysis v0.21.4 // indirect
Expand All @@ -164,7 +166,7 @@ require (
github.com/gogo/gateway v1.1.0 // indirect
github.com/gogo/googleapis v1.4.1 // indirect
github.com/gogo/protobuf v1.3.3 // indirect
github.com/golang/glog v1.1.0 // indirect
github.com/golang/glog v1.2.5 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/btree v1.1.2 // indirect
Expand Down Expand Up @@ -349,27 +351,28 @@ require (
go.etcd.io/etcd/client/v3 v3.5.5 // indirect
go.mongodb.org/mongo-driver v1.14.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect
go.opentelemetry.io/otel v1.21.0 // indirect
go.opentelemetry.io/otel/metric v1.21.0 // indirect
go.opentelemetry.io/otel/trace v1.21.0 // indirect
go.opentelemetry.io/otel v1.37.0 // indirect
go.opentelemetry.io/otel/metric v1.37.0 // indirect
go.opentelemetry.io/otel/trace v1.37.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/dig v1.18.0 // indirect
go.uber.org/fx v1.23.0 // indirect
go.uber.org/goleak v1.3.0 // indirect
go.uber.org/mock v0.5.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/ratelimit v0.2.0 // indirect
golang.org/x/mod v0.21.0 // indirect
golang.org/x/net v0.30.0 // indirect
golang.org/x/oauth2 v0.23.0 // indirect
golang.org/x/sync v0.8.0 // indirect
golang.org/x/term v0.25.0 // indirect
golang.org/x/text v0.19.0 // indirect
golang.org/x/tools v0.26.0 // indirect
gonum.org/v1/gonum v0.13.0 // indirect
golang.org/x/mod v0.26.0 // indirect
golang.org/x/net v0.43.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sync v0.16.0 // indirect
golang.org/x/term v0.34.0 // indirect
golang.org/x/text v0.28.0 // indirect
golang.org/x/tools v0.35.0 // indirect
gonum.org/v1/gonum v0.16.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20230807174057-1744710a1577 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250804133106-a7a43d27e69b // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
Expand All @@ -389,12 +392,7 @@ replace github.com/CosmWasm/wasmd v0.30.0 => github.com/wormhole-foundation/wasm

replace github.com/cosmos/cosmos-sdk => github.com/wormhole-foundation/cosmos-sdk v0.45.9-wormhole

require (
github.com/gogo/status v1.1.1
github.com/test-go/testify v1.1.4
// github.com/xlabs/tss-lib/v2 v2.0.0-20241224083831-c218006b15e3
github.com/xlabs/tss-lib/v2 v2.0.0-20251008162257-d741b8e3b429
)
require github.com/gogo/status v1.1.1

replace github.com/agl/ed25519 => github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43 // done in the TSS-LIB.

Expand Down
Loading