From ffe153efa71e0f1b4be1b1be22fe8d9065a44717 Mon Sep 17 00:00:00 2001 From: Ori Newman Date: Wed, 12 Aug 2020 17:55:58 +0300 Subject: [PATCH 1/3] [NOD-1262] Add network name to MinimalNetAdapter handshake (#867) --- netadapter/standalone/minimal_net_adapter.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/netadapter/standalone/minimal_net_adapter.go b/netadapter/standalone/minimal_net_adapter.go index 86428b4df..798c3d61c 100644 --- a/netadapter/standalone/minimal_net_adapter.go +++ b/netadapter/standalone/minimal_net_adapter.go @@ -1,11 +1,10 @@ package standalone import ( + "github.com/kaspanet/kaspad/util/mstime" "sync" "github.com/kaspanet/kaspad/netadapter/id" - "github.com/kaspanet/kaspad/util/mstime" - "github.com/kaspanet/kaspad/protocol/common" "github.com/kaspanet/kaspad/domainmessage" @@ -20,6 +19,7 @@ import ( // MinimalNetAdapter allows tests and other tools to use a simple network adapter without implementing // all the required supporting structures. type MinimalNetAdapter struct { + cfg *config.Config lock sync.Mutex netAdapter *netadapter.NetAdapter routesChan <-chan *Routes @@ -41,6 +41,7 @@ func NewMinimalNetAdapter(cfg *config.Config) (*MinimalNetAdapter, error) { } return &MinimalNetAdapter{ + cfg: cfg, lock: sync.Mutex{}, netAdapter: netAdapter, routesChan: routesChan, @@ -61,13 +62,13 @@ func (mna *MinimalNetAdapter) Connect(address string) (*Routes, error) { } routes := <-mna.routesChan - err = handleHandshake(routes, mna.netAdapter.ID()) + err = mna.handleHandshake(routes, mna.netAdapter.ID()) if err != nil { return nil, errors.Wrap(err, "Error in handshake") } spawn("netAdapterMock-handlePingPong", func() { - err := handlePingPong(routes) + err := mna.handlePingPong(routes) if err != nil { panic(errors.Wrap(err, "Error from ping-pong")) } @@ -79,7 +80,7 @@ func (mna *MinimalNetAdapter) Connect(address string) (*Routes, error) { // handlePingPong makes sure that we are not disconnected due to not responding to pings. // However, it only responds to pings, not sending its own, to conform to the minimal-ness // of MinimalNetAdapter -func handlePingPong(routes *Routes) error { +func (*MinimalNetAdapter) handlePingPong(routes *Routes) error { for { message, err := routes.pingRoute.Dequeue() if err != nil { @@ -98,7 +99,7 @@ func handlePingPong(routes *Routes) error { } } -func handleHandshake(routes *Routes, ourID *id.ID) error { +func (mna *MinimalNetAdapter) handleHandshake(routes *Routes, ourID *id.ID) error { msg, err := routes.handshakeRoute.DequeueWithTimeout(common.DefaultTimeout) if err != nil { return err @@ -111,6 +112,7 @@ func handleHandshake(routes *Routes, ourID *id.ID) error { err = routes.OutgoingRoute.Enqueue(&domainmessage.MsgVersion{ ProtocolVersion: versionMessage.ProtocolVersion, + Network: mna.cfg.ActiveNetParams.Name, Services: versionMessage.Services, Timestamp: mstime.Now(), Address: nil, From 31c03994844c988f3eaf9c4ecf78dae9868aa552 Mon Sep 17 00:00:00 2001 From: Ori Newman Date: Sun, 16 Aug 2020 17:55:49 +0300 Subject: [PATCH 2/3] Update to version 0.6.4 --- version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version/version.go b/version/version.go index 18fe3cdfa..6b9130a5e 100644 --- a/version/version.go +++ b/version/version.go @@ -11,7 +11,7 @@ const validCharacters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrs const ( appMajor uint = 0 appMinor uint = 6 - appPatch uint = 2 + appPatch uint = 3 ) // appBuild is defined as a variable so it can be overridden during the build From 1f04f30ea7ba2ae44ff669b3d23fce7689d9603d Mon Sep 17 00:00:00 2001 From: Ori Newman Date: Mon, 17 Aug 2020 14:22:16 +0300 Subject: [PATCH 3/3] [NOD-1273] Order parents in PrepareBlockForTest (#872) --- domain/blockdag/test_utils.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/domain/blockdag/test_utils.go b/domain/blockdag/test_utils.go index 5f2c76360..b4e941012 100644 --- a/domain/blockdag/test_utils.go +++ b/domain/blockdag/test_utils.go @@ -317,8 +317,10 @@ func PrepareBlockForTest(dag *BlockDAG, parentHashes []*daghash.Hash, transactio timestamp := node.parents.bluest().PastMedianTime(dag) msgBlock.Header = domainmessage.BlockHeader{ - Version: blockVersion, - ParentHashes: parentHashes, + Version: blockVersion, + + // We use parents.hashes() and not parentHashes because parents.hashes() is sorted. + ParentHashes: parents.hashes(), HashMerkleRoot: hashMerkleTree.Root(), AcceptedIDMerkleRoot: calculatedAccepetedIDMerkleRoot, UTXOCommitment: &calculatedMultisetHash,