mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-09-14 13:30:11 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6db296b98b | ||
![]() |
05d1671f3a | ||
![]() |
ce2758e825 | ||
![]() |
09545b94b7 |
@ -65,7 +65,7 @@ is used for this project.
|
|||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
The documentation is a work-in-progress.
|
The [documentation](https://github.com/kaspanet/docs) is a work-in-progress
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
@ -221,7 +221,6 @@ func (flow *handleRelayInvsFlow) downloadHeaders(highestSharedBlockHash *externa
|
|||||||
// headers
|
// headers
|
||||||
blockHeadersMessageChan := make(chan *appmessage.BlockHeadersMessage, 2)
|
blockHeadersMessageChan := make(chan *appmessage.BlockHeadersMessage, 2)
|
||||||
errChan := make(chan error)
|
errChan := make(chan error)
|
||||||
doneChan := make(chan interface{})
|
|
||||||
spawn("handleRelayInvsFlow-downloadHeaders", func() {
|
spawn("handleRelayInvsFlow-downloadHeaders", func() {
|
||||||
for {
|
for {
|
||||||
blockHeadersMessage, doneIBD, err := flow.receiveHeaders()
|
blockHeadersMessage, doneIBD, err := flow.receiveHeaders()
|
||||||
@ -230,7 +229,7 @@ func (flow *handleRelayInvsFlow) downloadHeaders(highestSharedBlockHash *externa
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if doneIBD {
|
if doneIBD {
|
||||||
doneChan <- struct{}{}
|
close(blockHeadersMessageChan)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,7 +245,10 @@ func (flow *handleRelayInvsFlow) downloadHeaders(highestSharedBlockHash *externa
|
|||||||
|
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case blockHeadersMessage := <-blockHeadersMessageChan:
|
case blockHeadersMessage, ok := <-blockHeadersMessageChan:
|
||||||
|
if !ok {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
for _, header := range blockHeadersMessage.BlockHeaders {
|
for _, header := range blockHeadersMessage.BlockHeaders {
|
||||||
err = flow.processHeader(header)
|
err = flow.processHeader(header)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -255,8 +257,6 @@ func (flow *handleRelayInvsFlow) downloadHeaders(highestSharedBlockHash *externa
|
|||||||
}
|
}
|
||||||
case err := <-errChan:
|
case err := <-errChan:
|
||||||
return err
|
return err
|
||||||
case <-doneChan:
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ func TestBlueBlockWindow(t *testing.T) {
|
|||||||
id string //id is a virtual entity that is used only for tests so we can define relations between blocks without knowing their hash
|
id string //id is a virtual entity that is used only for tests so we can define relations between blocks without knowing their hash
|
||||||
expectedWindowWithGenesisPadding []string
|
expectedWindowWithGenesisPadding []string
|
||||||
}{
|
}{
|
||||||
"kaspa-mainnet": {
|
dagconfig.MainnetParams.Name: {
|
||||||
{
|
{
|
||||||
parents: []string{"A"},
|
parents: []string{"A"},
|
||||||
id: "B",
|
id: "B",
|
||||||
@ -91,7 +91,7 @@ func TestBlueBlockWindow(t *testing.T) {
|
|||||||
expectedWindowWithGenesisPadding: []string{"N", "M", "L", "K", "J", "I", "F", "C", "D", "H"},
|
expectedWindowWithGenesisPadding: []string{"N", "M", "L", "K", "J", "I", "F", "C", "D", "H"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"kaspa-testnet": {
|
dagconfig.TestnetParams.Name: {
|
||||||
{
|
{
|
||||||
parents: []string{"A"},
|
parents: []string{"A"},
|
||||||
id: "B",
|
id: "B",
|
||||||
@ -163,7 +163,7 @@ func TestBlueBlockWindow(t *testing.T) {
|
|||||||
expectedWindowWithGenesisPadding: []string{"N", "M", "L", "K", "J", "I", "F", "H", "C", "D"},
|
expectedWindowWithGenesisPadding: []string{"N", "M", "L", "K", "J", "I", "F", "H", "C", "D"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"kaspa-devnet": {
|
dagconfig.DevnetParams.Name: {
|
||||||
{
|
{
|
||||||
parents: []string{"A"},
|
parents: []string{"A"},
|
||||||
id: "B",
|
id: "B",
|
||||||
@ -235,7 +235,7 @@ func TestBlueBlockWindow(t *testing.T) {
|
|||||||
expectedWindowWithGenesisPadding: []string{"N", "M", "L", "K", "J", "I", "F", "H", "C", "D"},
|
expectedWindowWithGenesisPadding: []string{"N", "M", "L", "K", "J", "I", "F", "H", "C", "D"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"kaspa-simnet": {
|
dagconfig.SimnetParams.Name: {
|
||||||
{
|
{
|
||||||
parents: []string{"A"},
|
parents: []string{"A"},
|
||||||
id: "B",
|
id: "B",
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package difficultymanager_test
|
package difficultymanager_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/kaspanet/kaspad/util/difficulty"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/kaspanet/kaspad/util/difficulty"
|
||||||
|
|
||||||
"github.com/kaspanet/kaspad/util/mstime"
|
"github.com/kaspanet/kaspad/util/mstime"
|
||||||
|
|
||||||
"github.com/kaspanet/kaspad/domain/consensus/utils/consensushashing"
|
"github.com/kaspanet/kaspad/domain/consensus/utils/consensushashing"
|
||||||
@ -132,9 +133,9 @@ func TestDifficulty(t *testing.T) {
|
|||||||
|
|
||||||
var expectedBits uint32
|
var expectedBits uint32
|
||||||
switch params.Name {
|
switch params.Name {
|
||||||
case "kaspa-testnet", "kaspa-devnet":
|
case dagconfig.TestnetParams.Name, dagconfig.DevnetParams.Name:
|
||||||
expectedBits = uint32(0x1e7f83df)
|
expectedBits = uint32(0x1e7f83df)
|
||||||
case "kaspa-mainnet":
|
case dagconfig.MainnetParams.Name:
|
||||||
expectedBits = uint32(0x207f83df)
|
expectedBits = uint32(0x207f83df)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,16 +27,16 @@ type testJSON struct {
|
|||||||
func TestPruning(t *testing.T) {
|
func TestPruning(t *testing.T) {
|
||||||
expectedPruningPointByNet := map[string]map[string]string{
|
expectedPruningPointByNet := map[string]map[string]string{
|
||||||
"chain-for-test-pruning.json": {
|
"chain-for-test-pruning.json": {
|
||||||
"kaspa-mainnet": "1582",
|
dagconfig.MainnetParams.Name: "1582",
|
||||||
"kaspa-simnet": "1582",
|
dagconfig.TestnetParams.Name: "1582",
|
||||||
"kaspa-devnet": "1582",
|
dagconfig.DevnetParams.Name: "1582",
|
||||||
"kaspa-testnet": "1582",
|
dagconfig.SimnetParams.Name: "1582",
|
||||||
},
|
},
|
||||||
"dag-for-test-pruning.json": {
|
"dag-for-test-pruning.json": {
|
||||||
"kaspa-mainnet": "503",
|
dagconfig.MainnetParams.Name: "503",
|
||||||
"kaspa-simnet": "502",
|
dagconfig.TestnetParams.Name: "503",
|
||||||
"kaspa-devnet": "503",
|
dagconfig.DevnetParams.Name: "503",
|
||||||
"kaspa-testnet": "503",
|
dagconfig.SimnetParams.Name: "502",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,17 +1,18 @@
|
|||||||
package consensus
|
package consensus
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
"github.com/kaspanet/kaspad/domain/consensus/utils/testutils"
|
"github.com/kaspanet/kaspad/domain/consensus/utils/testutils"
|
||||||
"github.com/kaspanet/kaspad/domain/dagconfig"
|
"github.com/kaspanet/kaspad/domain/dagconfig"
|
||||||
"testing"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestPruningDepth(t *testing.T) {
|
func TestPruningDepth(t *testing.T) {
|
||||||
expectedResult := map[string]uint64{
|
expectedResult := map[string]uint64{
|
||||||
"kaspa-mainnet": 244838,
|
dagconfig.MainnetParams.Name: 244838,
|
||||||
"kaspa-testnet": 244838,
|
dagconfig.TestnetParams.Name: 244838,
|
||||||
"kaspa-devnet": 244838,
|
dagconfig.DevnetParams.Name: 244838,
|
||||||
"kaspa-simnet": 192038,
|
dagconfig.SimnetParams.Name: 192038,
|
||||||
}
|
}
|
||||||
testutils.ForAllNets(t, true, func(t *testing.T, params *dagconfig.Params) {
|
testutils.ForAllNets(t, true, func(t *testing.T, params *dagconfig.Params) {
|
||||||
expected, found := expectedResult[params.Name]
|
expected, found := expectedResult[params.Name]
|
||||||
|
@ -256,7 +256,7 @@ var MainnetParams = Params{
|
|||||||
// TestnetParams defines the network parameters for the test Kaspa network.
|
// TestnetParams defines the network parameters for the test Kaspa network.
|
||||||
var TestnetParams = Params{
|
var TestnetParams = Params{
|
||||||
K: defaultGHOSTDAGK,
|
K: defaultGHOSTDAGK,
|
||||||
Name: "kaspa-testnet",
|
Name: "kaspa-testnet-2",
|
||||||
Net: appmessage.Testnet,
|
Net: appmessage.Testnet,
|
||||||
RPCPort: "16210",
|
RPCPort: "16210",
|
||||||
DefaultPort: "16211",
|
DefaultPort: "16211",
|
||||||
|
@ -2,20 +2,21 @@ package difficulty_test
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/kaspanet/kaspad/domain/consensus/utils/testutils"
|
|
||||||
"github.com/kaspanet/kaspad/domain/dagconfig"
|
|
||||||
"github.com/kaspanet/kaspad/util/difficulty"
|
|
||||||
"math"
|
"math"
|
||||||
"math/big"
|
"math/big"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/kaspanet/kaspad/domain/consensus/utils/testutils"
|
||||||
|
"github.com/kaspanet/kaspad/domain/dagconfig"
|
||||||
|
"github.com/kaspanet/kaspad/util/difficulty"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGetHashrateString(t *testing.T) {
|
func TestGetHashrateString(t *testing.T) {
|
||||||
var results = map[string]string{
|
var results = map[string]string{
|
||||||
"kaspa-mainnet": "2 H/s",
|
dagconfig.MainnetParams.Name: "2 H/s",
|
||||||
"kaspa-testnet": "131.07 KH/s",
|
dagconfig.TestnetParams.Name: "131.07 KH/s",
|
||||||
"kaspa-devnet": "131.07 KH/s",
|
dagconfig.DevnetParams.Name: "131.07 KH/s",
|
||||||
"kaspa-simnet": "2.00 KH/s",
|
dagconfig.SimnetParams.Name: "2.00 KH/s",
|
||||||
}
|
}
|
||||||
testutils.ForAllNets(t, false, func(t *testing.T, params *dagconfig.Params) {
|
testutils.ForAllNets(t, false, func(t *testing.T, params *dagconfig.Params) {
|
||||||
targetGenesis := difficulty.CompactToBig(params.GenesisBlock.Header.Bits())
|
targetGenesis := difficulty.CompactToBig(params.GenesisBlock.Header.Bits())
|
||||||
|
@ -10,8 +10,8 @@ const validCharacters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrs
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
appMajor uint = 0
|
appMajor uint = 0
|
||||||
appMinor uint = 9
|
appMinor uint = 8
|
||||||
appPatch uint = 0
|
appPatch uint = 8
|
||||||
)
|
)
|
||||||
|
|
||||||
// appBuild is defined as a variable so it can be overridden during the build
|
// appBuild is defined as a variable so it can be overridden during the build
|
||||||
|
Loading…
x
Reference in New Issue
Block a user