IMPORTANT NOTICE: The Go version of Spectre has been replaced by the stable Rust version. We strongly recommend switching to the new Rust version as soon as possible.
Link to the Rust version: https://github.com/spectre-project/rusty-spectre
PLEASE NOTE:
- Bugs and feature requests for the Go version will no longer be addressed. If you encounter any issues, please reproduce them in the Rust version and report them in the appropriate repository.
- Any pull requests or issues opened in this repository will be closed without consideration, except those related to
spectrewallet
, which is still being maintained. For all other cases, please use the Rust implementation.
Spectred was the reference full node Spectre implementation written in Go (golang). It is a DAG as a proof-of-work cryptocurrency with instant confirmations and sub-second block times. It is based on the PHANTOM protocol, a generalization of Nakamoto consensus.
Spectre is a fork of Kaspa introducing CPU-only mining algorithm SpectreX.
SpectreX is based on AstroBWTv3 and proof-of-work calculation is done in the following steps:
- Step 1: SHA-3
- Step 2: AstroBWTv3
- Step 3: HeavyHash
Spectre will add full non-disclosable privacy and anonymous transactions in future implemented with the GhostFACE protocol build by a team of anonymous crypto algorithm researchers and engineers. Simple and plain goal:
- PHANTOM Protocol + GhostDAG + GhostFACE = Spectre
Spectre will become a ghostchain; nothing more, nothing less. Design decisions have been made already and more details about the GhostFACE protocol will be released at a later stage. Sneak peak: It will use Pedersen Commitments as it allows perfect integration with the Spectre UTXO model and allows perfect hiding. ElGamal will be used for TX signature signing as it has a superior TPS (transactions per second) performance. Any PRs are welcome and can be made with anonymous accounts. No pre-mine, no shit, pure privacy is a hit!
Why another fork? Kaspa is great but we love privacy, Monero and DERO are great but we love speed! So lets join the cool things from both. We decided to take Kaspa as codebase, quick comparison:
Feature | Spectre | Kaspa | Monero | DERO |
---|---|---|---|---|
PoW Algorithm | SpectreX | kHeavyHash | RandomX | AstroBWTv3 |
Balance Encryption | Future | No | Yes | Yes |
Transaction Encryption | Future | No | Yes | Yes |
Message Encyrption | Future | No | No | Yes |
Untraceable Transactions | Future | No | Yes | Yes |
Untraceable Mining | Yes | No | No | Yes |
Built-in multicore CPU-miner | Yes | No | Yes | Yes |
High BPS | Yes | Yes | No | No |
High TPS | Yes | Yes | No | No |
Untraceable Mining is already achieved with AstroBWTv3 and a multicore miner is already being shipped with Spectre, working on ARM/x86. There is already a proof-of-concept Rust AstroBWT implementation currently under review and investigation to merge it into Spectre Rust codebase. We leave it up to the community to build an highly optimized CPU-miner.
We love numbers, you will find a lot of mathematical constants in the
source code, in the genesis hash, genesis payload, genesis merkle hash
and more. Mathematical constants like Pi,
E and
several prime numbers used as starting values for nonce or difficulty.
The first released version is 0.3.14
, the famous Pi divided by 10.
Pre-compiled binaries for Linux x86_64
, Windows x64
and macOS x64
as universal binary can be downloaded at: https://github.com/spectre-project/spectred/releases
Go 1.23 or later is required. Install Go according to the installation instructions at http://golang.org/doc/install. Ensure Go was installed properly and is a supported version:
go version
Run the following commands to obtain and install spectred including all dependencies:
git clone https://github.com/spectre-project/spectred
cd spectred
go install . ./cmd/...
Spectred (and utilities) should now be installed in
$(go env 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.
Spectred has several configuration options available to tweak how it runs, but all of the basic operations work with zero configuration.
spectred
The built-in spectreminer
is a very simple unoptimized multi-core
miner. Without specifying amount of cores it spawns one mining worker
as the original Kaspa builtin miner. You can specify amount of workers
based on number of cores with the command line option --workers
.
Join our Discord server and discuss with us. Don't forget: We love privacy!
The integrated github issue tracker is used for this project.
Spectred is licensed under the copyfree ISC License.