
* [NOD-1126] 1. Change function name in BlockValidator interface from: "ValidateProofOfWorkAndDifficulty" to "ValidatePruningPointViolationAndProofOfWorkAndDifficulty". 2. Add to the blockValidator struct the pruningManager (also added to the function "New" Respectively). 3. Added new function "checkPruningPointViolation" of blockValidator type. 4. Add new internal check - "checkPruningPointViolation", on the function "ValidateProofOfWorkAndDifficulty".(The third check). 5. Add new error rule - "ErrPruningPointViolation". * [Issue-1126] 1. Remove the function "PruningPoint" from PruningManager interface. 2. Changes in blockValidator struct - remove pruningManager, and adding pruningStore. 3. Reads for "pruningPoint" function from pruningStore instead of pruningManager (because of note 1 above) in the functions: * "checkPruningPointViolation" of type blockValidator. * "FindNextPruningPoint" of type pruningManager. * [Issue-1126] 1. Add missing error handling. * [Issue-1126] Changes in function "checkPruningPointViolation": If header = genesis, stop checking and return nil. * [Issue-1126] In function "checkPruningPointViolation" - change from a for loop to the "IsAncestorOfAny" function. * [#1126] "FindNextPruningPoint" - save the pruning point in case the point is the genesis and change code internal order. * [#1126] "FindNextPruningPoint" - cosmetics change. * [#1126] "FindNextPruningPoint" - remove "return nil" when there is no pruning point on the if expression. Co-authored-by: tal <tal@daglabs.com>
Kaspad
Warning: This is pre-alpha software. There's no guarantee anything works.
Kaspad is the reference full node Kaspa implementation written in Go (golang).
This project is currently under active development and is in a pre-Alpha state. Some things still don't work and APIs are far from finalized. The code is provided for reference only.
Requirements
Latest version of Go (currently 1.13).
Installation
Build from Source
-
Install Go according to the installation instructions here: http://golang.org/doc/install
-
Ensure Go was installed properly and is a supported version:
$ go version
$ go env GOROOT GOPATH
NOTE: The GOROOT
and GOPATH
above must not be the same path. It is
recommended that GOPATH
is set to a directory in your home directory such as
~/dev/go
to avoid write permission issues. It is also recommended to add
$GOPATH/bin
to your PATH
at this point.
- Run the following commands to obtain and install kaspad including all dependencies:
$ git clone https://github.com/kaspanet/kaspad $GOPATH/src/github.com/kaspanet/kaspad
$ cd $GOPATH/src/github.com/kaspanet/kaspad
$ go install . ./cmd/...
- Kaspad (and utilities) should now be installed in
$GOPATH/bin
. If you did not already add the bin directory to your system path during Go installation, you are encouraged to do so now.
Getting Started
Kaspad has several configuration options available to tweak how it runs, but all of the basic operations work with zero configuration.
Linux/BSD/POSIX/Source
$ ./kaspad
Discord
Join our discord server using the following link: https://discord.gg/WmGhhzk
Issue Tracker
The integrated github issue tracker is used for this project.
Documentation
The documentation is a work-in-progress. It is located in the docs folder.
License
Kaspad is licensed under the copyfree ISC License.