mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-09-14 13:30:11 +00:00
Compare commits
8 Commits
master
...
0.10.1-del
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f072572d28 | ||
![]() |
9e0b50c0dd | ||
![]() |
b405ea50e5 | ||
![]() |
ccfe8a45dd | ||
![]() |
9dd8136e4b | ||
![]() |
eb1703b948 | ||
![]() |
a6da3251d0 | ||
![]() |
bf198948c4 |
@ -1,6 +1,8 @@
|
|||||||
package blockrelay
|
package blockrelay
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/kaspanet/kaspad/app/appmessage"
|
"github.com/kaspanet/kaspad/app/appmessage"
|
||||||
"github.com/kaspanet/kaspad/app/protocol/common"
|
"github.com/kaspanet/kaspad/app/protocol/common"
|
||||||
peerpkg "github.com/kaspanet/kaspad/app/protocol/peer"
|
peerpkg "github.com/kaspanet/kaspad/app/protocol/peer"
|
||||||
@ -11,6 +13,7 @@ import (
|
|||||||
"github.com/kaspanet/kaspad/domain/consensus/utils/consensushashing"
|
"github.com/kaspanet/kaspad/domain/consensus/utils/consensushashing"
|
||||||
"github.com/kaspanet/kaspad/infrastructure/config"
|
"github.com/kaspanet/kaspad/infrastructure/config"
|
||||||
"github.com/kaspanet/kaspad/infrastructure/network/netadapter/router"
|
"github.com/kaspanet/kaspad/infrastructure/network/netadapter/router"
|
||||||
|
"github.com/kaspanet/kaspad/util/mstime"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -109,6 +112,8 @@ func (flow *handleRelayInvsFlow) start() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
msTime := mstime.UnixMilliseconds(block.Header.TimeInMilliseconds())
|
||||||
|
time.Sleep(time.Until(msTime.ToNativeTime().Add(config.DelayDuration)))
|
||||||
|
|
||||||
log.Debugf("Processing block %s", inv.Hash)
|
log.Debugf("Processing block %s", inv.Hash)
|
||||||
missingParents, blockInsertionResult, err := flow.processBlock(block)
|
missingParents, blockInsertionResult, err := flow.processBlock(block)
|
||||||
|
@ -1,11 +1,85 @@
|
|||||||
|
Kaspad v0.10.1 0 2021-05-11
|
||||||
|
* Calculate virtual's acceptance data and multiset after importing a new pruning point (#1700)
|
||||||
|
|
||||||
|
Kaspad v0.10.0 - 2021-04-26
|
||||||
|
===========================
|
||||||
|
Major changes include:
|
||||||
|
* Implementing a signature hashing scheme similar to BIP-143
|
||||||
|
* Replacing HASH160 with BLAKE2B
|
||||||
|
* Replacing ECMH with MuHash
|
||||||
|
* Removing RIPEMD160 and SHA1 from the codebase entirely
|
||||||
|
* Making P2PKH transactions non-standard
|
||||||
|
* Vastly enhancing the CLI wallet
|
||||||
|
* Restructuring kaspad's app/home directory
|
||||||
|
* Modifying block and transaction types in the RPC to be easier to consume clientside
|
||||||
|
|
||||||
|
A partial list of the more-important commits is as follows:
|
||||||
|
* Fix data race in GetBlockChildren (#1579)
|
||||||
|
* Remove payload hash (#1583)
|
||||||
|
* Add the mempool size to getInfo RPC command (#1584)
|
||||||
|
* Change the difficulty to be calculated based on the same block instead of its selected parent (#1591)
|
||||||
|
* Adjust the difficulty in the first difficultyAdjustmentWindowSize blocks (#1592)
|
||||||
|
* Adding DAA score (#1596)
|
||||||
|
* Use DAA score where needed (#1602)
|
||||||
|
* Remove the Services field from NetAddress. (#1610)
|
||||||
|
* Fix getBlocks to not add the anticone when some blocks were filtered by GetHashesBetween (#1611)
|
||||||
|
* Restructure the default ~/.kaspad directory layout (#1613)
|
||||||
|
* Replace the HomeDir flag with a AppDir flag (#1615)
|
||||||
|
* Implement BIP-143-like sighash (#1598)
|
||||||
|
* Change --datadir to --appdir and remove symmetrical connection in stability tests (#1617)
|
||||||
|
* Use BLAKE2B instead of HASH160, and get rid of any usage of RIPEMD160 and SHA1 (#1618)
|
||||||
|
* Replace ECMH with Muhash (#1624)
|
||||||
|
* Add support for multiple staging areas (#1633)
|
||||||
|
* Make sure the ghostdagDataStore cache is at least DifficultyAdjustmentBlockWindow sized (#1635)
|
||||||
|
* Resolve each block status in it's own staging area (#1634)
|
||||||
|
* Add mass limit to mempool (#1627)
|
||||||
|
* In RPC, use RPCTransactions and RPCBlocks instead of TransactionMessages and BlockMessages (#1609)
|
||||||
|
* Use go-secp256k1 v0.0.5 (#1640)
|
||||||
|
* Add a show-address subcommand to kaspawallet (#1653)
|
||||||
|
* Replace p2pkh with p2pk (#1650)
|
||||||
|
* Implement importing private keys into the wallet (#1655)
|
||||||
|
* Add dump unencrypted data sub command to the wallet (#1661)
|
||||||
|
* Add ECDSA support (#1657)
|
||||||
|
* Add OpCheckMultiSigECDSA (#1663)
|
||||||
|
* Add ECDSA support to the wallet (#1664)
|
||||||
|
* Make moving the pruning point faster (#1660)
|
||||||
|
* Implement new mechanism for updating UTXO Diffs (#1671)
|
||||||
|
|
||||||
|
Kaspad v0.9.2 - 2021-03-31
|
||||||
|
===========================
|
||||||
|
* Increase the route capacity of InvTransaction messages. (#1603) (#1637)
|
||||||
|
|
||||||
|
Kaspad v0.9.1 - 2021-03-14
|
||||||
|
===========================
|
||||||
|
* Testnet network reset
|
||||||
|
|
||||||
|
Kaspad v0.9.0 - 2021-03-04
|
||||||
|
===========================
|
||||||
|
|
||||||
|
* Merge big subdags in pick virtual parents (#1574)
|
||||||
|
* Write in the reject message the tx rejection reason (#1573)
|
||||||
|
* Add nil checks for protowire (#1570)
|
||||||
|
* Increase getBlocks limit to 1000 (#1572)
|
||||||
|
* Return RPC error if getBlock's lowHash doesn't exist (#1569)
|
||||||
|
* Add default dns-seeder to testnet (#1568)
|
||||||
|
* Fix utxoindex deserialization (#1566)
|
||||||
|
* Add pruning point hash to GetBlockDagInfo response (#1565)
|
||||||
|
* Use EmitUnpopulated so that kaspactl prints all fields, even the default ones (#1561)
|
||||||
|
* Stop logging an error whenever an RPC/P2P connection is canceled (#1562)
|
||||||
|
* Cleanup the logger and make it asynchronous (#1524)
|
||||||
|
* Close all iterators (#1542)
|
||||||
|
* Add childrenHashes to GetBlock/s RPC commands (#1560)
|
||||||
|
* Add ScriptPublicKey.Version to RPC (#1559)
|
||||||
|
* Fix the target block rate to create less bursty mining (#1554)
|
||||||
|
|
||||||
Kaspad v0.8.10 - 2021-02-25
|
Kaspad v0.8.10 - 2021-02-25
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
[*] Fix bug where invalid mempool transactions were not removed (#1551)
|
* Fix bug where invalid mempool transactions were not removed (#1551)
|
||||||
[*] Add RPC reconnection to the miner (#1552)
|
* Add RPC reconnection to the miner (#1552)
|
||||||
[*] Remove virtual diff parents - only selectedTip is virtualDiffParent now (#1550)
|
* Remove virtual diff parents - only selectedTip is virtualDiffParent now (#1550)
|
||||||
[*] Fix UTXO index (#1548)
|
* Fix UTXO index (#1548)
|
||||||
[*] Prevent fast failing (#1545)
|
* Prevent fast failing (#1545)
|
||||||
[*] Increase the sleep time in kaspaminer when the node is not synced (#1544)
|
* Increase the sleep time in kaspaminer when the node is not synced (#1544)
|
||||||
[*] Disallow header only blocks on RPC, relay and when requesting IBD full blocks (#1537)
|
* Disallow header only blocks on RPC, relay and when requesting IBD full blocks (#1537)
|
||||||
[*] Make templateManager hold a DomainBlock and isSynced bool instead of a GetBlockTemplateResponseMessage (#1538)
|
* Make templateManager hold a DomainBlock and isSynced bool instead of a GetBlockTemplateResponseMessage (#1538)
|
||||||
|
@ -59,6 +59,22 @@ func (bp *blockProcessor) setBlockStatusAfterBlockValidation(
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (bp *blockProcessor) updateVirtualAcceptanceDataAfterImportingPruningPoint(stagingArea *model.StagingArea) error {
|
||||||
|
|
||||||
|
_, virtualAcceptanceData, virtualMultiset, err :=
|
||||||
|
bp.consensusStateManager.CalculatePastUTXOAndAcceptanceData(stagingArea, model.VirtualBlockHash)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Debugf("Staging virtual acceptance data after importing the pruning point")
|
||||||
|
bp.acceptanceDataStore.Stage(stagingArea, model.VirtualBlockHash, virtualAcceptanceData)
|
||||||
|
|
||||||
|
log.Debugf("Staging virtual multiset after importing the pruning point")
|
||||||
|
bp.multisetStore.Stage(stagingArea, model.VirtualBlockHash, virtualMultiset)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (bp *blockProcessor) validateAndInsertBlock(stagingArea *model.StagingArea, block *externalapi.DomainBlock,
|
func (bp *blockProcessor) validateAndInsertBlock(stagingArea *model.StagingArea, block *externalapi.DomainBlock,
|
||||||
isPruningPoint bool) (*externalapi.BlockInsertionResult, error) {
|
isPruningPoint bool) (*externalapi.BlockInsertionResult, error) {
|
||||||
|
|
||||||
@ -102,6 +118,11 @@ func (bp *blockProcessor) validateAndInsertBlock(stagingArea *model.StagingArea,
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
err := bp.updateVirtualAcceptanceDataAfterImportingPruningPoint(stagingArea)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,37 +132,37 @@ func TestBlockWindow(t *testing.T) {
|
|||||||
{
|
{
|
||||||
parents: []string{"H", "F"},
|
parents: []string{"H", "F"},
|
||||||
id: "I",
|
id: "I",
|
||||||
expectedWindow: []string{"F", "D", "H", "C", "G", "B"},
|
expectedWindow: []string{"F", "D", "C", "H", "G", "B"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
parents: []string{"I"},
|
parents: []string{"I"},
|
||||||
id: "J",
|
id: "J",
|
||||||
expectedWindow: []string{"I", "F", "D", "H", "C", "G", "B"},
|
expectedWindow: []string{"I", "F", "D", "C", "H", "G", "B"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
parents: []string{"J"},
|
parents: []string{"J"},
|
||||||
id: "K",
|
id: "K",
|
||||||
expectedWindow: []string{"J", "I", "F", "D", "H", "C", "G", "B"},
|
expectedWindow: []string{"J", "I", "F", "D", "C", "H", "G", "B"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
parents: []string{"K"},
|
parents: []string{"K"},
|
||||||
id: "L",
|
id: "L",
|
||||||
expectedWindow: []string{"K", "J", "I", "F", "D", "H", "C", "G", "B"},
|
expectedWindow: []string{"K", "J", "I", "F", "D", "C", "H", "G", "B"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
parents: []string{"L"},
|
parents: []string{"L"},
|
||||||
id: "M",
|
id: "M",
|
||||||
expectedWindow: []string{"L", "K", "J", "I", "F", "D", "H", "C", "G", "B"},
|
expectedWindow: []string{"L", "K", "J", "I", "F", "D", "C", "H", "G", "B"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
parents: []string{"M"},
|
parents: []string{"M"},
|
||||||
id: "N",
|
id: "N",
|
||||||
expectedWindow: []string{"M", "L", "K", "J", "I", "F", "D", "H", "C", "G"},
|
expectedWindow: []string{"M", "L", "K", "J", "I", "F", "D", "C", "H", "G"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
parents: []string{"N"},
|
parents: []string{"N"},
|
||||||
id: "O",
|
id: "O",
|
||||||
expectedWindow: []string{"N", "M", "L", "K", "J", "I", "F", "D", "H", "C"},
|
expectedWindow: []string{"N", "M", "L", "K", "J", "I", "F", "D", "C", "H"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dagconfig.DevnetParams.Name: {
|
dagconfig.DevnetParams.Name: {
|
||||||
|
@ -177,10 +177,10 @@ var testnetGenesisCoinbaseTx = transactionhelper.NewSubnetworkTransaction(0,
|
|||||||
// testnetGenesisHash is the hash of the first block in the block DAG for the test
|
// testnetGenesisHash is the hash of the first block in the block DAG for the test
|
||||||
// network (genesis block).
|
// network (genesis block).
|
||||||
var testnetGenesisHash = externalapi.NewDomainHashFromByteArray(&[externalapi.DomainHashSize]byte{
|
var testnetGenesisHash = externalapi.NewDomainHashFromByteArray(&[externalapi.DomainHashSize]byte{
|
||||||
0x8f, 0x83, 0xf5, 0x33, 0x77, 0xa4, 0x80, 0xa7,
|
0xac, 0x23, 0xff, 0xc3, 0x85, 0xd3, 0x88, 0x99,
|
||||||
0x93, 0xf3, 0x17, 0xee, 0x3e, 0x8f, 0xf5, 0xaf,
|
0xfd, 0xb8, 0x83, 0x30, 0x80, 0x3a, 0x3d, 0xbf,
|
||||||
0x16, 0x6d, 0x87, 0x1d, 0x54, 0xfd, 0xe7, 0x79,
|
0xf7, 0x9b, 0x96, 0x9e, 0x4c, 0xd5, 0x1b, 0xf0,
|
||||||
0xa2, 0xab, 0x6f, 0xc3, 0x76, 0x60, 0xc3, 0x64,
|
0x0e, 0x77, 0xb6, 0x87, 0x70, 0xaa, 0x4e, 0x1f,
|
||||||
})
|
})
|
||||||
|
|
||||||
// testnetGenesisMerkleRoot is the hash of the first transaction in the genesis block
|
// testnetGenesisMerkleRoot is the hash of the first transaction in the genesis block
|
||||||
@ -201,9 +201,9 @@ var testnetGenesisBlock = externalapi.DomainBlock{
|
|||||||
testnetGenesisMerkleRoot,
|
testnetGenesisMerkleRoot,
|
||||||
&externalapi.DomainHash{},
|
&externalapi.DomainHash{},
|
||||||
externalapi.NewDomainHashFromByteArray(muhash.EmptyMuHashHash.AsArray()),
|
externalapi.NewDomainHashFromByteArray(muhash.EmptyMuHashHash.AsArray()),
|
||||||
0x177bfd44a10,
|
0x178547bee50,
|
||||||
0x1e7fffff,
|
0x1e7fffff,
|
||||||
0x64d74,
|
0x2de70,
|
||||||
),
|
),
|
||||||
Transactions: []*externalapi.DomainTransaction{testnetGenesisCoinbaseTx},
|
Transactions: []*externalapi.DomainTransaction{testnetGenesisCoinbaseTx},
|
||||||
}
|
}
|
||||||
|
@ -256,11 +256,11 @@ 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-2",
|
Name: "kaspa-testnet-5",
|
||||||
Net: appmessage.Testnet,
|
Net: appmessage.Testnet,
|
||||||
RPCPort: "16210",
|
RPCPort: "16210",
|
||||||
DefaultPort: "16211",
|
DefaultPort: "16211",
|
||||||
DNSSeeds: []string{"testnet-2-dnsseed.daglabs-dev.com"},
|
DNSSeeds: []string{"testnet-5-dnsseed.daglabs-dev.com"},
|
||||||
|
|
||||||
// DAG parameters
|
// DAG parameters
|
||||||
GenesisBlock: &testnetGenesisBlock,
|
GenesisBlock: &testnetGenesisBlock,
|
||||||
|
@ -27,6 +27,8 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var DelayDuration time.Duration
|
||||||
|
|
||||||
const (
|
const (
|
||||||
defaultConfigFilename = "kaspad.conf"
|
defaultConfigFilename = "kaspad.conf"
|
||||||
defaultDataDirname = "data"
|
defaultDataDirname = "data"
|
||||||
@ -122,6 +124,7 @@ type Flags struct {
|
|||||||
UTXOIndex bool `long:"utxoindex" description:"Enable the UTXO index"`
|
UTXOIndex bool `long:"utxoindex" description:"Enable the UTXO index"`
|
||||||
IsArchivalNode bool `long:"archival" description:"Run as an archival node: don't delete old block data when moving the pruning point (Warning: heavy disk usage)'"`
|
IsArchivalNode bool `long:"archival" description:"Run as an archival node: don't delete old block data when moving the pruning point (Warning: heavy disk usage)'"`
|
||||||
EnableSanityCheckPruningUTXOSet bool `long:"enable-sanity-check-pruning-utxo" hidden:"true" description:"When moving the pruning point - check that the utxo set matches the utxo commitment"`
|
EnableSanityCheckPruningUTXOSet bool `long:"enable-sanity-check-pruning-utxo" hidden:"true" description:"When moving the pruning point - check that the utxo set matches the utxo commitment"`
|
||||||
|
Delay float32 `long:"delay" description:"Provide a delay in seconds as a floating point"`
|
||||||
NetworkFlags
|
NetworkFlags
|
||||||
ServiceOptions *ServiceOptions
|
ServiceOptions *ServiceOptions
|
||||||
}
|
}
|
||||||
@ -577,6 +580,8 @@ func LoadConfig() (*Config, error) {
|
|||||||
if configFileError != nil {
|
if configFileError != nil {
|
||||||
log.Warnf("%s", configFileError)
|
log.Warnf("%s", configFileError)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DelayDuration = time.Duration(cfg.Delay * float32(time.Second))
|
||||||
return cfg, nil
|
return cfg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package netadapter
|
|||||||
import (
|
import (
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/kaspanet/kaspad/app/appmessage"
|
"github.com/kaspanet/kaspad/app/appmessage"
|
||||||
"github.com/kaspanet/kaspad/infrastructure/config"
|
"github.com/kaspanet/kaspad/infrastructure/config"
|
||||||
@ -175,18 +176,20 @@ func (na *NetAdapter) ID() *id.ID {
|
|||||||
// P2PBroadcast sends the given `message` to every peer corresponding
|
// P2PBroadcast sends the given `message` to every peer corresponding
|
||||||
// to each NetConnection in the given netConnections
|
// to each NetConnection in the given netConnections
|
||||||
func (na *NetAdapter) P2PBroadcast(netConnections []*NetConnection, message appmessage.Message) error {
|
func (na *NetAdapter) P2PBroadcast(netConnections []*NetConnection, message appmessage.Message) error {
|
||||||
na.p2pConnectionsLock.RLock()
|
go func() {
|
||||||
defer na.p2pConnectionsLock.RUnlock()
|
time.Sleep(config.DelayDuration)
|
||||||
|
na.p2pConnectionsLock.RLock()
|
||||||
for _, netConnection := range netConnections {
|
defer na.p2pConnectionsLock.RUnlock()
|
||||||
err := netConnection.router.OutgoingRoute().Enqueue(message)
|
for _, netConnection := range netConnections {
|
||||||
if err != nil {
|
err := netConnection.router.OutgoingRoute().Enqueue(message)
|
||||||
if errors.Is(err, routerpkg.ErrRouteClosed) {
|
if err != nil {
|
||||||
log.Debugf("Cannot enqueue message to %s: router is closed", netConnection)
|
if errors.Is(err, routerpkg.ErrRouteClosed) {
|
||||||
continue
|
log.Debugf("Cannot enqueue message to %s: router is closed", netConnection)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
log.Error(err)
|
||||||
}
|
}
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
}
|
}()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -1,26 +1,29 @@
|
|||||||
ARG KASPAD_VERSION
|
ARG KASPAD_IMAGE
|
||||||
|
ARG KASPAMINER_IMAGE
|
||||||
|
|
||||||
FROM 578712463641.dkr.ecr.eu-central-1.amazonaws.com/kaspad-release-candidate:$KASPAD_VERSION as kaspad
|
FROM ${KASPAD_IMAGE} as kaspad
|
||||||
FROM 578712463641.dkr.ecr.eu-central-1.amazonaws.com/kaspaminer-release-candidate:$KASPAD_VERSION as kaspaminer
|
FROM ${KASPAMINER_IMAGE} as kaspaminer
|
||||||
|
|
||||||
FROM golang:1.16-alpine
|
FROM golang:1.16-alpine
|
||||||
|
|
||||||
|
RUN mkdir -p /go/src/github.com/kaspanet/kaspad
|
||||||
|
|
||||||
|
WORKDIR /go/src/github.com/kaspanet/kaspad
|
||||||
|
|
||||||
RUN apk add bash build-base git
|
RUN apk add bash build-base git
|
||||||
|
|
||||||
ARG KASPAD_VERSION
|
COPY go.mod .
|
||||||
|
COPY go.sum .
|
||||||
|
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
COPY --from=kaspad /app/ /app/
|
COPY --from=kaspad /app/ /app/
|
||||||
COPY --from=kaspaminer /app/ /app/
|
COPY --from=kaspaminer /app/ /app/
|
||||||
ENV PATH="/app:${PATH}"
|
ENV PATH="/app:${PATH}"
|
||||||
|
|
||||||
COPY . /tests
|
WORKDIR /go/src/github.com/kaspanet/kaspad/stability-tests
|
||||||
|
|
||||||
WORKDIR /tests
|
|
||||||
|
|
||||||
RUN git ls-remote https://github.com/kaspanet/kaspad.git $KASPAD_VERSION | awk '{print $1;}' > /tmp/kaspad_git_commit
|
|
||||||
RUN go mod edit -dropreplace github.com/kaspanet/kaspad
|
|
||||||
RUN go mod edit -replace github.com/kaspanet/kaspad=github.com/kaspanet/kaspad@`cat /tmp/kaspad_git_commit` ;
|
|
||||||
RUN go mod download
|
|
||||||
|
|
||||||
RUN go install ./...
|
RUN go install ./...
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ KASPAD_PID=$!
|
|||||||
|
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
RUN_STABILITY_TESTS=true go test ../ -- --rpc-address=127.0.0.1:"${KASPAD_RPC_PORT}" --profile=7000
|
RUN_STABILITY_TESTS=true go test ../ -v -timeout 86400s -- --rpc-address=127.0.0.1:"${KASPAD_RPC_PORT}" --profile=7000
|
||||||
TEST_EXIT_CODE=$?
|
TEST_EXIT_CODE=$?
|
||||||
|
|
||||||
kill $KASPAD_PID
|
kill $KASPAD_PID
|
||||||
|
@ -20,8 +20,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
payAddress = "kaspasim:qr79e37hxdgkn4xjjmfxvqvayc5gsmsql2660d08u9ej9vnc8lzcywr265u64"
|
payAddress = "kaspasim:qzuax2jhawd354e54thhpd9m9wg03pdzwjlpr4vtq3k7xrpumhhtwa2hkr3ep"
|
||||||
payAddressPrivateKey = "0ec5d7308f65717f3f0c3e4d962d73056c1c255a16593b3989589281b51ad5bc"
|
payAddressPrivateKey = "05d8f681e954a550395ee2297fc1a14f6e801f554c0b9d48cd7165a7ea72ff77"
|
||||||
fundingCoinbaseTransactionAmount = 1000
|
fundingCoinbaseTransactionAmount = 1000
|
||||||
outputsPerTransaction = 3
|
outputsPerTransaction = 3
|
||||||
transactionFee = 1000
|
transactionFee = 1000
|
||||||
|
@ -11,7 +11,7 @@ const validCharacters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrs
|
|||||||
const (
|
const (
|
||||||
appMajor uint = 0
|
appMajor uint = 0
|
||||||
appMinor uint = 10
|
appMinor uint = 10
|
||||||
appPatch uint = 0
|
appPatch uint = 1
|
||||||
)
|
)
|
||||||
|
|
||||||
// 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