From 5707e8c3fef6d9f4252167d1be49cef08292b7a0 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Fri, 23 Aug 2024 17:07:17 +0200 Subject: [PATCH 01/20] Removed periodic race detection workflow --- .github/workflows/race.yaml | 48 ------------------------------------- 1 file changed, 48 deletions(-) delete mode 100644 .github/workflows/race.yaml diff --git a/.github/workflows/race.yaml b/.github/workflows/race.yaml deleted file mode 100644 index f07a380109..0000000000 --- a/.github/workflows/race.yaml +++ /dev/null @@ -1,48 +0,0 @@ -name: Race - -on: - schedule: - - cron: "0 0 * * *" - workflow_dispatch: - -jobs: - race_test: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - branch: [ stable, latest ] - name: Race detection on ${{ matrix.branch }} - steps: - - name: Check out code into the Go module directory - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Setup Go - uses: actions/setup-go@v4 - with: - go-version: 1.21 - - - name: Set scheduled branch name - shell: bash - if: github.event_name == 'schedule' - run: | - if [ "${{ matrix.branch }}" == "stable" ]; then - echo "run_on=master" >> $GITHUB_ENV - fi - if [ "${{ matrix.branch }}" == "latest" ]; then - echo "run_on=dev" >> $GITHUB_ENV - fi - - - name: Set manual branch name - shell: bash - if: github.event_name == 'workflow_dispatch' - run: echo "run_on=${{ github.ref }}" >> $GITHUB_ENV - - - name: Test with race detector - shell: bash - run: | - git checkout "${{ env.run_on }}" - git status - go test -timeout 20m -race ./... From e99a2e1300c5d7d1a5105df78a5a11d87f8ec537 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Fri, 23 Aug 2024 17:28:39 +0200 Subject: [PATCH 02/20] Added 'HFDAAScore' to 'simnet' to pass tests --- domain/dagconfig/params.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/domain/dagconfig/params.go b/domain/dagconfig/params.go index 2d4af7faaa..58720bc75b 100644 --- a/domain/dagconfig/params.go +++ b/domain/dagconfig/params.go @@ -279,7 +279,7 @@ var MainnetParams = Params{ MaxBlockLevel: 225, MergeDepth: defaultMergeDepth, // todo: define the fork date DAAscore - HFDAAScore: 42000042, + HFDAAScore: 42000042, } // TestnetParams defines the network parameters for the test Karlsen network. @@ -345,7 +345,7 @@ var TestnetParams = Params{ MaxBlockLevel: 250, MergeDepth: defaultMergeDepth, // todo: define the fork date DAAscore - HFDAAScore: 6000000, + HFDAAScore: 6000000, } // SimnetParams defines the network parameters for the simulation test Karlsen @@ -412,6 +412,7 @@ var SimnetParams = Params{ MaxBlockLevel: 250, MergeDepth: defaultMergeDepth, + HFDAAScore: 50, } // DevnetParams defines the network parameters for the development Karlsen network. From e135ccd6ca1dafef9fd06c72639793fe6708647e Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Mon, 26 Aug 2024 00:45:06 +0200 Subject: [PATCH 03/20] Fixed pruning_test in simnet and devnet genesis from Rust node --- .../consensus/processes/pruningmanager/pruning_test.go | 2 +- domain/dagconfig/genesis.go | 10 +++++----- domain/dagconfig/params.go | 6 ++---- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/domain/consensus/processes/pruningmanager/pruning_test.go b/domain/consensus/processes/pruningmanager/pruning_test.go index b89b336500..6e5e77e798 100644 --- a/domain/consensus/processes/pruningmanager/pruning_test.go +++ b/domain/consensus/processes/pruningmanager/pruning_test.go @@ -40,7 +40,7 @@ func TestPruning(t *testing.T) { dagconfig.MainnetParams.Name: "503", dagconfig.TestnetParams.Name: "502", dagconfig.DevnetParams.Name: "503", - dagconfig.SimnetParams.Name: "502", + dagconfig.SimnetParams.Name: "503", }, } diff --git a/domain/dagconfig/genesis.go b/domain/dagconfig/genesis.go index 1ef1c34f75..d0bf9b0e94 100644 --- a/domain/dagconfig/genesis.go +++ b/domain/dagconfig/genesis.go @@ -96,10 +96,10 @@ var devnetGenesisCoinbaseTx = transactionhelper.NewSubnetworkTransaction(0, // devGenesisHash is the hash of the first block in the block DAG for the development // network (genesis block). var devnetGenesisHash = externalapi.NewDomainHashFromByteArray(&[externalapi.DomainHashSize]byte{ - 0xcb, 0x1b, 0x9e, 0x97, 0x2c, 0x04, 0x3e, 0xc9, - 0x98, 0xc4, 0x36, 0x13, 0x46, 0x45, 0x04, 0xe1, - 0x7d, 0xf2, 0xa4, 0x5a, 0x8a, 0x6a, 0xa1, 0x16, - 0x21, 0xd9, 0x4b, 0x87, 0x6d, 0x69, 0xe0, 0xd4, + 0x1b, 0x9b, 0xe8, 0x0e, 0xd3, 0x60, 0xb5, 0x1c, + 0x95, 0xed, 0x15, 0x1d, 0x0f, 0x08, 0x03, 0x5c, + 0x8e, 0xc0, 0x1e, 0x86, 0xea, 0xb3, 0x14, 0x49, + 0xe3, 0xe4, 0x96, 0xe0, 0x96, 0xb1, 0xee, 0x43, }) // devnetGenesisMerkleRoot is the hash of the first transaction in the genesis block @@ -121,7 +121,7 @@ var devnetGenesisBlock = externalapi.DomainBlock{ &externalapi.DomainHash{}, externalapi.NewDomainHashFromByteArray(muhash.EmptyMuHashHash.AsArray()), 0x11e9db49828, - 525264379, + 0x1e21bc1c, // Bits with ~testnet-like difficulty for slow devnet start 0x48e5e, 0, 0, diff --git a/domain/dagconfig/params.go b/domain/dagconfig/params.go index 58720bc75b..d4b42c7889 100644 --- a/domain/dagconfig/params.go +++ b/domain/dagconfig/params.go @@ -278,8 +278,7 @@ var MainnetParams = Params{ // This means that any block that has a level lower or equal to genesis will be level 0. MaxBlockLevel: 225, MergeDepth: defaultMergeDepth, - // todo: define the fork date DAAscore - HFDAAScore: 42000042, + HFDAAScore: 42000042, // TODO: define the fork date DAAscore } // TestnetParams defines the network parameters for the test Karlsen network. @@ -344,8 +343,7 @@ var TestnetParams = Params{ MaxBlockLevel: 250, MergeDepth: defaultMergeDepth, - // todo: define the fork date DAAscore - HFDAAScore: 6000000, + HFDAAScore: 6000000, // TODO: define the fork date DAAscore } // SimnetParams defines the network parameters for the simulation test Karlsen From 0cab1d18a7b5dad418f2aa7683d4af39ac19bb99 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Mon, 26 Aug 2024 13:54:35 +0200 Subject: [PATCH 04/20] Fixed remaining integration tests and Go modules update --- .../dagtraversalmanager/window_test.go | 12 +- .../difficultymanager_test.go | 2 +- .../processes/pruningmanager/pruning_test.go | 2 +- go.mod | 13 +- go.sum | 136 ++---------------- util/difficulty/difficulty_test.go | 2 +- 6 files changed, 27 insertions(+), 140 deletions(-) diff --git a/domain/consensus/processes/dagtraversalmanager/window_test.go b/domain/consensus/processes/dagtraversalmanager/window_test.go index a372dd1548..65f93c1c4d 100644 --- a/domain/consensus/processes/dagtraversalmanager/window_test.go +++ b/domain/consensus/processes/dagtraversalmanager/window_test.go @@ -204,32 +204,32 @@ func TestBlockWindow(t *testing.T) { { parents: []string{"H", "F"}, id: "I", - expectedWindow: []string{"F", "C", "D", "H", "B", "G"}, + expectedWindow: []string{"F", "C", "D", "H", "G", "B"}, }, { parents: []string{"I"}, id: "J", - expectedWindow: []string{"I", "F", "C", "D", "H", "B", "G"}, + expectedWindow: []string{"I", "F", "C", "D", "H", "G", "B"}, }, { parents: []string{"J"}, id: "K", - expectedWindow: []string{"J", "I", "F", "C", "D", "H", "B", "G"}, + expectedWindow: []string{"J", "I", "F", "C", "D", "H", "G", "B"}, }, { parents: []string{"K"}, id: "L", - expectedWindow: []string{"K", "J", "I", "F", "C", "D", "H", "B", "G"}, + expectedWindow: []string{"K", "J", "I", "F", "C", "D", "H", "G", "B"}, }, { parents: []string{"L"}, id: "M", - expectedWindow: []string{"L", "K", "J", "I", "F", "C", "D", "H", "B", "G"}, + expectedWindow: []string{"L", "K", "J", "I", "F", "C", "D", "H", "G", "B"}, }, { parents: []string{"M"}, id: "N", - expectedWindow: []string{"M", "L", "K", "J", "I", "F", "C", "D", "H", "B"}, + expectedWindow: []string{"M", "L", "K", "J", "I", "F", "C", "D", "H", "G"}, }, { parents: []string{"N"}, diff --git a/domain/consensus/processes/difficultymanager/difficultymanager_test.go b/domain/consensus/processes/difficultymanager/difficultymanager_test.go index c04ff553a1..c58a52ec6b 100644 --- a/domain/consensus/processes/difficultymanager/difficultymanager_test.go +++ b/domain/consensus/processes/difficultymanager/difficultymanager_test.go @@ -132,7 +132,7 @@ func TestDifficulty(t *testing.T) { case dagconfig.TestnetParams.Name: expectedBits = uint32(0x1e7f1441) case dagconfig.DevnetParams.Name: - expectedBits = uint32(0x1f4e54ab) + expectedBits = uint32(0x1e217dfa) case dagconfig.MainnetParams.Name: expectedBits = uint32(0x1e7f1441) } diff --git a/domain/consensus/processes/pruningmanager/pruning_test.go b/domain/consensus/processes/pruningmanager/pruning_test.go index 6e5e77e798..c7e6a67c30 100644 --- a/domain/consensus/processes/pruningmanager/pruning_test.go +++ b/domain/consensus/processes/pruningmanager/pruning_test.go @@ -39,7 +39,7 @@ func TestPruning(t *testing.T) { "dag-for-test-pruning.json": { dagconfig.MainnetParams.Name: "503", dagconfig.TestnetParams.Name: "502", - dagconfig.DevnetParams.Name: "503", + dagconfig.DevnetParams.Name: "502", dagconfig.SimnetParams.Name: "503", }, } diff --git a/go.mod b/go.mod index 36d4646bac..225b53143a 100644 --- a/go.mod +++ b/go.mod @@ -17,21 +17,20 @@ require ( github.com/pkg/errors v0.9.1 github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d github.com/tyler-smith/go-bip39 v1.1.0 - golang.org/x/crypto v0.19.0 + golang.org/x/crypto v0.26.0 golang.org/x/exp v0.0.0-20240213143201-ec583247a57a - golang.org/x/term v0.17.0 + golang.org/x/term v0.23.0 google.golang.org/grpc v1.61.1 - google.golang.org/protobuf v1.32.0 + google.golang.org/protobuf v1.34.2 lukechampine.com/blake3 v1.2.1 ) require ( github.com/golang/snappy v0.0.4 // indirect github.com/klauspost/cpuid/v2 v2.2.6 // indirect - golang.org/x/net v0.21.0 // indirect - golang.org/x/sys v0.17.0 // indirect - golang.org/x/text v0.14.0 // indirect - google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect + golang.org/x/net v0.28.0 // indirect + golang.org/x/sys v0.23.0 // indirect + golang.org/x/text v0.17.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c // indirect gopkg.in/yaml.v2 v2.3.0 // indirect ) diff --git a/go.sum b/go.sum index 57e9503d0a..cef9634e82 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,3 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= @@ -13,57 +11,27 @@ github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0 h1:J9B4L7e3oqhXOcm+2IuNApwzQec85lE+QaikUcCs+dk= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dvyukov/go-fuzz v0.0.0-20210103155950-6a8e9d1f2415/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw= github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jrick/logrotate v1.0.0 h1:lQ1bL/n9mBNeIXoTUoYRlK4dHuNJVofX9oWqBtPnSzI= @@ -73,8 +41,6 @@ github.com/kaspanet/go-muhash v0.0.4/go.mod h1:10bPW5mO1vNHPSejaAh9ZTtLZE16jzEvg github.com/kaspanet/go-secp256k1 v0.0.7 h1:WHnrwopKB6ZeHSbdAwwxNhTqflm56XT1mM6LF4/OvOs= github.com/kaspanet/go-secp256k1 v0.0.7/go.mod h1:cFbxhxKkxqHX5eIwUGKARkph19PehipDPJejWB+H0jM= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= -github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc= github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -84,125 +50,50 @@ github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d h1:gZZadD8H+fF+n9CmNhYL1Y0dJB+kLOmKd7FbPJLeGHs= github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d/go.mod h1:9OrXJhf154huy1nPWmuSrkgjPUtUNhA+Zmy+6AESzuA= github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210317152858-513c2a44f670/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd h1:zVFyTKZN/Q7mNRWSs1GOYnHM9NiFSJ54YVRsD0rNWT4= -golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20240213143201-ec583247a57a h1:HinSgX1tJRX3KsL//Gxynpw5CTOAIPhgL4W8PNiIpVE= golang.org/x/exp v0.0.0-20240213143201-ec583247a57a/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08 h1:pc16UedxnxXXtGxHCSUhafAoVHQZ0yXl8ZelMH4EETc= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= -google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c h1:NUsgEN92SQQqzfA+YtqYNqYmB3DMMYLlIwUZAQFVFbo= google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= @@ -210,10 +101,7 @@ gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMy gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= diff --git a/util/difficulty/difficulty_test.go b/util/difficulty/difficulty_test.go index 5a1890d4e9..8aca09815a 100644 --- a/util/difficulty/difficulty_test.go +++ b/util/difficulty/difficulty_test.go @@ -17,7 +17,7 @@ func TestGetHashrateString(t *testing.T) { var results = map[string]string{ dagconfig.MainnetParams.Name: "131.07 KH/s", dagconfig.TestnetParams.Name: "131.07 KH/s", - dagconfig.DevnetParams.Name: "830 H/s", + dagconfig.DevnetParams.Name: "497.32 KH/s", dagconfig.SimnetParams.Name: "2.00 KH/s", } testutils.ForAllNets(t, false, func(t *testing.T, consensusConfig *consensus.Config) { From 75d4ccfb624b9a215bc29b5c79c8b070e3a2ce2a Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Mon, 26 Aug 2024 14:19:52 +0200 Subject: [PATCH 05/20] Use 4-char abbreviation as rest of KLS logging system (POW->POWK) --- domain/consensus/utils/pow/log.go | 2 +- domain/consensus/utils/pow/pow.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/domain/consensus/utils/pow/log.go b/domain/consensus/utils/pow/log.go index 8ca41bef67..ba17b89d01 100644 --- a/domain/consensus/utils/pow/log.go +++ b/domain/consensus/utils/pow/log.go @@ -5,5 +5,5 @@ import ( "github.com/karlsen-network/karlsend/util/panics" ) -var log = logger.RegisterSubSystem("POW") +var log = logger.RegisterSubSystem("POWK") var spawn = panics.GoroutineWrapperFunc(log) diff --git a/domain/consensus/utils/pow/pow.go b/domain/consensus/utils/pow/pow.go index 2302d8bc1d..fa7098c608 100644 --- a/domain/consensus/utils/pow/pow.go +++ b/domain/consensus/utils/pow/pow.go @@ -75,7 +75,7 @@ func getContext(full bool, log *logger.Logger) *fishhashContext { // SetLogger uses a specified Logger to output package logging info func SetLogger(backend *logger.Backend, level logger.Level) { - const logSubsystem = "POW" + const logSubsystem = "POWK" log = backend.Logger(logSubsystem) log.SetLevel(level) spawn = panics.GoroutineWrapperFunc(log) From 32a6946480e86553c94e949e02aa2859ec4fb8f9 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Mon, 26 Aug 2024 14:47:10 +0200 Subject: [PATCH 06/20] Increase windows runner pagefile to 32gb --- .github/workflows/SetPageFileSize.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/SetPageFileSize.ps1 b/.github/workflows/SetPageFileSize.ps1 index 8eaf70f9ab..5bfb3a329f 100644 --- a/.github/workflows/SetPageFileSize.ps1 +++ b/.github/workflows/SetPageFileSize.ps1 @@ -11,8 +11,8 @@ #> param( - [System.UInt64] $MinimumSize = 16gb , - [System.UInt64] $MaximumSize = 16gb , + [System.UInt64] $MinimumSize = 32gb , + [System.UInt64] $MaximumSize = 32gb , [System.String] $DiskRoot = "D:" ) @@ -193,4 +193,4 @@ namespace Util Add-Type -TypeDefinition $source # Set SetPageFileSize -[Util.PageFile]::SetPageFileSize($minimumSize, $maximumSize, $diskRoot) \ No newline at end of file +[Util.PageFile]::SetPageFileSize($minimumSize, $maximumSize, $diskRoot) From f8d8eaefac4f2369f61edd210c0380142696d848 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Mon, 26 Aug 2024 15:37:17 +0200 Subject: [PATCH 07/20] Remove Go cache in test workflow due to its constant failures --- .github/workflows/tests.yaml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 54cd4c7aaa..70f839f5f5 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -33,15 +33,6 @@ jobs: with: go-version: 1.21 - # Source: https://github.com/actions/cache/blob/main/examples.md#go---modules - - name: Go Cache - uses: actions/cache@v4 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- - - name: Test shell: bash run: ./build_and_test.sh From e34b69a025e7d8c5495fcddf67b3c674f50f0cf6 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Mon, 26 Aug 2024 17:52:49 +0200 Subject: [PATCH 08/20] Increase code coverage timeout to 120m due to khashv2. --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 70f839f5f5..a77e5dd584 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -74,7 +74,7 @@ jobs: run: rm -r stability-tests - name: Create coverage file - run: go test -v -covermode=atomic -coverpkg=./... -coverprofile coverage.txt ./... + run: go test -timeout 120m -v -covermode=atomic -coverpkg=./... -coverprofile coverage.txt ./... - name: Upload coverage file run: bash <(curl -s https://codecov.io/bash) From 98b073041f650ebd499efb5796a6212a0984bd5a Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Mon, 26 Aug 2024 20:32:50 +0200 Subject: [PATCH 09/20] Increase timeout in integration tests and sequential execution --- .github/workflows/tests.yaml | 4 +++- build_and_test.sh | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index a77e5dd584..320231212d 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -35,6 +35,8 @@ jobs: - name: Test shell: bash + env: + NO_PARALLEL: 1 run: ./build_and_test.sh stability-test-fast: @@ -74,7 +76,7 @@ jobs: run: rm -r stability-tests - name: Create coverage file - run: go test -timeout 120m -v -covermode=atomic -coverpkg=./... -coverprofile coverage.txt ./... + run: go test -timeout 120m -parallel=1 -v -covermode=atomic -coverpkg=./... -coverprofile coverage.txt ./... - name: Upload coverage file run: bash <(curl -s https://codecov.io/bash) diff --git a/build_and_test.sh b/build_and_test.sh index 7d59a4c91a..6a3dd6b793 100755 --- a/build_and_test.sh +++ b/build_and_test.sh @@ -24,7 +24,7 @@ go build -v -o karlsend . # check if parallel tests are enabled. [ -n "${NO_PARALLEL}" ] && { - go test -timeout 20m -parallel=1 -v ./... + go test -timeout 30m -parallel=1 -v ./... } || { - go test -timeout 20m -v ./... + go test -timeout 30m -v ./... } From 03a82580e4a562332e5922d9b428a46add920774 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Tue, 27 Aug 2024 11:56:38 +0200 Subject: [PATCH 10/20] Fixed 'BlockVersionKHashV2' in debug output and removed linebreak --- domain/consensus/utils/pow/pow.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/domain/consensus/utils/pow/pow.go b/domain/consensus/utils/pow/pow.go index fa7098c608..ce0ff272c4 100644 --- a/domain/consensus/utils/pow/pow.go +++ b/domain/consensus/utils/pow/pow.go @@ -145,10 +145,10 @@ func (state *State) CalculateProofOfWorkValue() *big.Int { //log.Infof("Hash b3-1: %x", powHash.ByteSlice()) finalHash := powHash if state.blockVersion == constants.BlockVersionKHashV1 { - log.Debugf("Using khashv1 %d %d\n", state.blockVersion, constants.BlockVersionKHashV1) + log.Debugf("Using khashv1 %d %d", state.blockVersion, constants.BlockVersionKHashV1) finalHash = state.mat.HeavyHash(powHash) } else { - log.Debugf("Using khashv2 %d %d\n", state.blockVersion, constants.BlockVersionKHashV1) + log.Debugf("Using khashv2 %d %d", state.blockVersion, constants.BlockVersionKHashV2) middleHash := fishHashPlus(&state.context, powHash) writer2 := hashes.NewPoWHashWriter() writer2.InfallibleWrite(middleHash.ByteSlice()) From 629e525250233c233e71127e909af002aedeadee Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Tue, 27 Aug 2024 12:27:22 +0200 Subject: [PATCH 11/20] Partially revert e135ccd6ca1dafef9fd06c72639793fe6708647e: * Stability tests in devnet need some faster startup time, slow startup can be achieved with custom devnet genesis block and bits. --- domain/dagconfig/genesis.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/domain/dagconfig/genesis.go b/domain/dagconfig/genesis.go index d0bf9b0e94..5308898d26 100644 --- a/domain/dagconfig/genesis.go +++ b/domain/dagconfig/genesis.go @@ -96,10 +96,10 @@ var devnetGenesisCoinbaseTx = transactionhelper.NewSubnetworkTransaction(0, // devGenesisHash is the hash of the first block in the block DAG for the development // network (genesis block). var devnetGenesisHash = externalapi.NewDomainHashFromByteArray(&[externalapi.DomainHashSize]byte{ - 0x1b, 0x9b, 0xe8, 0x0e, 0xd3, 0x60, 0xb5, 0x1c, - 0x95, 0xed, 0x15, 0x1d, 0x0f, 0x08, 0x03, 0x5c, - 0x8e, 0xc0, 0x1e, 0x86, 0xea, 0xb3, 0x14, 0x49, - 0xe3, 0xe4, 0x96, 0xe0, 0x96, 0xb1, 0xee, 0x43, + 0xcb, 0x1b, 0x9e, 0x97, 0x2c, 0x04, 0x3e, 0xc9, + 0x98, 0xc4, 0x36, 0x13, 0x46, 0x45, 0x04, 0xe1, + 0x7d, 0xf2, 0xa4, 0x5a, 0x8a, 0x6a, 0xa1, 0x16, + 0x21, 0xd9, 0x4b, 0x87, 0x6d, 0x69, 0xe0, 0xd4, }) // devnetGenesisMerkleRoot is the hash of the first transaction in the genesis block @@ -121,7 +121,7 @@ var devnetGenesisBlock = externalapi.DomainBlock{ &externalapi.DomainHash{}, externalapi.NewDomainHashFromByteArray(muhash.EmptyMuHashHash.AsArray()), 0x11e9db49828, - 0x1e21bc1c, // Bits with ~testnet-like difficulty for slow devnet start + 0x1f4ee5fb, 0x48e5e, 0, 0, From 2ff293100dad10f32ec4f4502496b4a093b0d4a7 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Tue, 27 Aug 2024 15:08:09 +0200 Subject: [PATCH 12/20] Moving khashv2 pre-computed dag file during stability tests --- stability-tests/run/run-fast.sh | 5 ++++- stability-tests/simple-sync/run/run.sh | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/stability-tests/run/run-fast.sh b/stability-tests/run/run-fast.sh index 73d6da88f2..59bbc709a3 100755 --- a/stability-tests/run/run-fast.sh +++ b/stability-tests/run/run-fast.sh @@ -30,6 +30,9 @@ echo "Running simple-sync" cd "${PROJECT_ROOT}/simple-sync/run" && ./run.sh || failedTests+=("simple-sync") echo "Done running simple-sync" +echo "Moving khashv2 pre-computed dag file" +mv "${PROJECT_ROOT}/simple-sync/run/hashes.dat" "${PROJECT_ROOT}/many-tips/run" + echo "Running orphans" cd "${PROJECT_ROOT}/orphans/run" && ./run.sh || failedTests+=("orphans") echo "Done running orphans" @@ -54,4 +57,4 @@ for t in "${failedTests[@]}"; do done echo "Exiting with: ${EXIT_CODE}" -exit $EXIT_CODE \ No newline at end of file +exit $EXIT_CODE diff --git a/stability-tests/simple-sync/run/run.sh b/stability-tests/simple-sync/run/run.sh index f8a44799ea..a82b8c05ab 100755 --- a/stability-tests/simple-sync/run/run.sh +++ b/stability-tests/simple-sync/run/run.sh @@ -1,6 +1,6 @@ #!/bin/bash set -e -simple-sync --simnet -n=1000 --profile=7000 +simple-sync --simnet -n=100 --profile=7000 TEST_EXIT_CODE=$? echo "Exit code: $TEST_EXIT_CODE" From 8862cc3c8a6be9dd2ab6425024c10d98ad5dec39 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Tue, 27 Aug 2024 16:33:01 +0200 Subject: [PATCH 13/20] Partially revert 0cab1d18a7b5dad418f2aa7683d4af39ac19bb99 --- .../processes/dagtraversalmanager/window_test.go | 12 ++++++------ .../difficultymanager/difficultymanager_test.go | 2 +- .../processes/pruningmanager/pruning_test.go | 2 +- util/difficulty/difficulty_test.go | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/domain/consensus/processes/dagtraversalmanager/window_test.go b/domain/consensus/processes/dagtraversalmanager/window_test.go index 65f93c1c4d..a372dd1548 100644 --- a/domain/consensus/processes/dagtraversalmanager/window_test.go +++ b/domain/consensus/processes/dagtraversalmanager/window_test.go @@ -204,32 +204,32 @@ func TestBlockWindow(t *testing.T) { { parents: []string{"H", "F"}, id: "I", - expectedWindow: []string{"F", "C", "D", "H", "G", "B"}, + expectedWindow: []string{"F", "C", "D", "H", "B", "G"}, }, { parents: []string{"I"}, id: "J", - expectedWindow: []string{"I", "F", "C", "D", "H", "G", "B"}, + expectedWindow: []string{"I", "F", "C", "D", "H", "B", "G"}, }, { parents: []string{"J"}, id: "K", - expectedWindow: []string{"J", "I", "F", "C", "D", "H", "G", "B"}, + expectedWindow: []string{"J", "I", "F", "C", "D", "H", "B", "G"}, }, { parents: []string{"K"}, id: "L", - expectedWindow: []string{"K", "J", "I", "F", "C", "D", "H", "G", "B"}, + expectedWindow: []string{"K", "J", "I", "F", "C", "D", "H", "B", "G"}, }, { parents: []string{"L"}, id: "M", - expectedWindow: []string{"L", "K", "J", "I", "F", "C", "D", "H", "G", "B"}, + expectedWindow: []string{"L", "K", "J", "I", "F", "C", "D", "H", "B", "G"}, }, { parents: []string{"M"}, id: "N", - expectedWindow: []string{"M", "L", "K", "J", "I", "F", "C", "D", "H", "G"}, + expectedWindow: []string{"M", "L", "K", "J", "I", "F", "C", "D", "H", "B"}, }, { parents: []string{"N"}, diff --git a/domain/consensus/processes/difficultymanager/difficultymanager_test.go b/domain/consensus/processes/difficultymanager/difficultymanager_test.go index c58a52ec6b..c04ff553a1 100644 --- a/domain/consensus/processes/difficultymanager/difficultymanager_test.go +++ b/domain/consensus/processes/difficultymanager/difficultymanager_test.go @@ -132,7 +132,7 @@ func TestDifficulty(t *testing.T) { case dagconfig.TestnetParams.Name: expectedBits = uint32(0x1e7f1441) case dagconfig.DevnetParams.Name: - expectedBits = uint32(0x1e217dfa) + expectedBits = uint32(0x1f4e54ab) case dagconfig.MainnetParams.Name: expectedBits = uint32(0x1e7f1441) } diff --git a/domain/consensus/processes/pruningmanager/pruning_test.go b/domain/consensus/processes/pruningmanager/pruning_test.go index c7e6a67c30..6e5e77e798 100644 --- a/domain/consensus/processes/pruningmanager/pruning_test.go +++ b/domain/consensus/processes/pruningmanager/pruning_test.go @@ -39,7 +39,7 @@ func TestPruning(t *testing.T) { "dag-for-test-pruning.json": { dagconfig.MainnetParams.Name: "503", dagconfig.TestnetParams.Name: "502", - dagconfig.DevnetParams.Name: "502", + dagconfig.DevnetParams.Name: "503", dagconfig.SimnetParams.Name: "503", }, } diff --git a/util/difficulty/difficulty_test.go b/util/difficulty/difficulty_test.go index 8aca09815a..5a1890d4e9 100644 --- a/util/difficulty/difficulty_test.go +++ b/util/difficulty/difficulty_test.go @@ -17,7 +17,7 @@ func TestGetHashrateString(t *testing.T) { var results = map[string]string{ dagconfig.MainnetParams.Name: "131.07 KH/s", dagconfig.TestnetParams.Name: "131.07 KH/s", - dagconfig.DevnetParams.Name: "497.32 KH/s", + dagconfig.DevnetParams.Name: "830 H/s", dagconfig.SimnetParams.Name: "2.00 KH/s", } testutils.ForAllNets(t, false, func(t *testing.T, consensusConfig *consensus.Config) { From 23b175aff4535a938f5322e4ae3e9588e9aea4bf Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Tue, 27 Aug 2024 23:56:39 +0200 Subject: [PATCH 14/20] Give orphans stability test more time to process blocks --- stability-tests/many-tips/main.go | 2 +- stability-tests/orphans/main.go | 4 ++-- stability-tests/run/run-fast.sh | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/stability-tests/many-tips/main.go b/stability-tests/many-tips/main.go index bf89c7551d..f8175887e9 100644 --- a/stability-tests/many-tips/main.go +++ b/stability-tests/many-tips/main.go @@ -115,7 +115,7 @@ func startNode() (teardown func(), err error) { "--appdir", dataDir, "--logdir", dataDir, "--rpclisten", rpcAddress, - "--loglevel", "debug", + "--loglevel", "info", "--allow-submit-block-when-not-synced", ) if err != nil { diff --git a/stability-tests/orphans/main.go b/stability-tests/orphans/main.go index ffe87e73b3..76bc7db1ee 100644 --- a/stability-tests/orphans/main.go +++ b/stability-tests/orphans/main.go @@ -49,8 +49,8 @@ func main() { os.Exit(1) } - // Wait a second to let karlsend process orphans - <-time.After(1 * time.Second) + // Wait 5 seconds to let karlsend process orphans + <-time.After(5 * time.Second) err = checkTopBlockIsTip(rpcClient, topBlock) if err != nil { diff --git a/stability-tests/run/run-fast.sh b/stability-tests/run/run-fast.sh index 59bbc709a3..1ba644cb4a 100755 --- a/stability-tests/run/run-fast.sh +++ b/stability-tests/run/run-fast.sh @@ -45,6 +45,9 @@ echo "Running many-tips" cd "${PROJECT_ROOT}/many-tips/run" && ./run.sh || failedTests+=("many-tips") echo "Done running many-tips" +echo "Removing khashv2 pre-computed dag file" +rm "${PROJECT_ROOT}/many-tips/run/hashes.dat" + echo "Running netsync - fast" cd "${PROJECT_ROOT}/netsync/run" && ./run-fast.sh || failedTests+=("netsync") echo "Done running netsync - fast" From c56f01eaa981dc0694486d42314738135a61d613 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Wed, 28 Aug 2024 09:26:48 +0200 Subject: [PATCH 15/20] Increase Linux swapfile size in GitHub runner to avoid OOM --- .github/workflows/tests.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 320231212d..8ce4215a3e 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -28,6 +28,13 @@ jobs: if: runner.os == 'Windows' run: powershell -command .github\workflows\SetPageFileSize.ps1 + # Increase the swap size on Linux to aviod running out of memory + - name: Increase swap size on Linux + if: runner.os == 'Linux' + uses: thejerrybao/setup-swap-space@v1 + with: + swap-size-gb: 12 + - name: Setup Go uses: actions/setup-go@v4 with: @@ -43,6 +50,14 @@ jobs: runs-on: ubuntu-latest name: Fast stability tests steps: + + # Increase the swap size on Linux to aviod running out of memory + - name: Increase swap size on Linux + if: runner.os == 'Linux' + uses: thejerrybao/setup-swap-space@v1 + with: + swap-size-gb: 12 + - name: Setup Go uses: actions/setup-go@v4 with: From 29726b7be9761b7b000590ef4c7c1d2c86359abd Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Wed, 28 Aug 2024 13:29:47 +0200 Subject: [PATCH 16/20] Increase swap size for code coverage to support khashv2 --- .github/workflows/tests.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 8ce4215a3e..bc3a63a763 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -79,6 +79,14 @@ jobs: runs-on: ubuntu-latest name: Produce code coverage steps: + + # Increase the swap size on Linux to aviod running out of memory + - name: Increase swap size on Linux + if: runner.os == 'Linux' + uses: thejerrybao/setup-swap-space@v1 + with: + swap-size-gb: 12 + - name: Check out code into the Go module directory uses: actions/checkout@v4 From 89f8351d3304925555e459315bfdd923a33ed4d0 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Wed, 28 Aug 2024 13:53:18 +0200 Subject: [PATCH 17/20] Version bump to 2.1.0 for khashv2 --- version/version.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/version/version.go b/version/version.go index 7d8fd9c6d5..a15ad996a5 100644 --- a/version/version.go +++ b/version/version.go @@ -10,8 +10,8 @@ const validCharacters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrs const ( appMajor uint = 2 - appMinor uint = 0 - appPatch uint = 3 + appMinor uint = 1 + appPatch uint = 0 ) // appBuild is defined as a variable so it can be overridden during the build From c2d369f70aa9067f6da6eeae9f55dcc7139ca264 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Wed, 28 Aug 2024 23:53:18 +0200 Subject: [PATCH 18/20] Mainnet HFDAAScore set to 26962009 to switch to khashv2 --- domain/dagconfig/params.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/domain/dagconfig/params.go b/domain/dagconfig/params.go index d4b42c7889..41c58ac64b 100644 --- a/domain/dagconfig/params.go +++ b/domain/dagconfig/params.go @@ -278,7 +278,7 @@ var MainnetParams = Params{ // This means that any block that has a level lower or equal to genesis will be level 0. MaxBlockLevel: 225, MergeDepth: defaultMergeDepth, - HFDAAScore: 42000042, // TODO: define the fork date DAAscore + HFDAAScore: 26962009, // HF DAAscore to switch to khashv2 (Fri Sep 13 01:37:00 PM UTC 2024) } // TestnetParams defines the network parameters for the test Karlsen network. From 55820110d310d3f2cd47ebda1e28a0dfac8d53c8 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Thu, 29 Aug 2024 10:55:10 +0200 Subject: [PATCH 19/20] Updated README.md and added khashv2 paragraph --- README.md | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 3ff13e4416..58bb9a8a9d 100644 --- a/README.md +++ b/README.md @@ -38,18 +38,15 @@ miners. We will ensure long-term GPU-friendly mining. ### Hashing Function We initially started with `kHeavyHash` and `blake3` modifications -on-top. This algorithm is called `KarlsenHashv1`. However `kHeavyHash` -and `blake3` are not future proof in ASIC resistence. Therefore we've -launched already our `testnet-1` with [FishHash](https://github.com/iron-fish/fish-hash/blob/main/FishHash.pdf). -It is the worlds first implementation of FishHash with Golang in a -1bps blockchain. +on-top. This algorithm is called `KarlsenHashv1`. `KarlsenHashv1` is currently used in [mainnet](https://github.com/karlsen-network/karlsend/releases/tag/v1.1.0) and can be mined using the following miners maintained by the Karlsen developers: * Built-in CPU miner from `karlsend` -* Karlsen [GPU miner](https://github.com/karlsen-network/karlsen-miner) as reference implementation of `kHeavyHash` with `blake3`. +* Karlsen [GPU miner](https://github.com/karlsen-network/karlsen-miner) + as reference implementation of `kHeavyHash` with `blake3`. The following third-party miners are available and have added `KarlsenHashv1`: @@ -61,14 +58,42 @@ The following third-party miners are available and have added * [Rigel](https://github.com/rigelminer/rigel) * [GMiner](https://github.com/develsoftware/GMinerRelease) -`KarlsenHashv2` is currently being investigated and tested in [testnet-1](https://github.com/karlsen-network/karlsend/releases/tag/v2.0.0-testnet-1-fishhash) +`KarlsenHashv2` will become active via hardfork at DAA score `26.962.009`. +It is based on [FishHash](https://github.com/iron-fish/fish-hash/blob/main/FishHash.pdf) +written from scratch in our Golang node implementation. It is FPGA/ASIC +resistent. It is the worlds first implementation of FishHash with Golang +in `mainnet` in a 1bps blockchain. + +`KarlsenHashv2` is currently used in [mainnet](https://github.com/karlsen-network/karlsend/releases/tag/v2.1.0) and can be mined using the following miners maintained by the Karlsen developers: * Built-in CPU miner from `karlsend` -* Karlsen [GPU miner](https://github.com/wam-rd/karlsen-miner/releases/tag/v2.0.0-alpha) as bleeding edge and unoptimized reference implementation of FishHash. +* Karlsen [GPU miner](https://github.com/karlsen-network/karlsen-miner/releases/tag/v2.0.0) + as bleeding edge and unoptimized reference implementation of + `KarlsenHashv2`. Please follow the steps in the [README.md](https://github.com/karlsen-network/karlsen-miner/blob/main/README.md) + to generate a DAG file. + +The following third-party miners are available and have added +`KarlsenHashv2`: + +* [SRBMiner](https://github.com/doktor83/SRBMiner-Multi) + +### DAG Generation + +To start mining using the built-in CPU miner it needs a pre-generated +DAG file. `KarlsenHashv2` miner uses a 4GB DAG for efficient mining. +It generates this DAG with 8 CPU threads and saves it as `hashes.dat` +for faster subsequent runs. + +* First Run: Generates a 4GB DAG using 8 CPU threads. This may take + time depending on your computer. Saves the DAG as `hashes.dat` for + future use. +* Next Runs: Loads `hashes.dat` to skip DAG generation, speeding up + startup. -There are no third-party miners available as of now. +If you need to regenerate the DAG, delete `hashes.dat` and run the +`karlsenminer` again. ## Smart Contracts From bc65e011d231b91e38c92b0dd3c5e8f83db345e9 Mon Sep 17 00:00:00 2001 From: Lemois 1337 Date: Thu, 29 Aug 2024 11:12:11 +0200 Subject: [PATCH 20/20] Re-enable mainnet sync --- app/app.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/app.go b/app/app.go index f712f8fd08..3f3aaa4281 100644 --- a/app/app.go +++ b/app/app.go @@ -84,11 +84,6 @@ func (app *karlsendApp) main(startedChan chan<- struct{}) error { // Show version at startup. log.Infof("Version %s", version.Version()) log.Infof("Using KarlsenHashV2 impl: %s", pow.GetHashingAlgoVersion()) - if !app.cfg.Testnet && !app.cfg.Devnet && !app.cfg.Simnet { - log.Warnf("You are trying to connect to Mainnet") - log.Errorf("This version is using KarlsenHashV2, please add --testnet parameter") - os.Exit(42) - } // Enable http profiling server if requested. if app.cfg.Profile != "" {