kashd

command module
v0.0.0-...-decf009 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2023 License: ISC Imports: 3 Imported by: 0

README

Kashd

ISC License GoDoc

Kash: Pioneering the Purest Form of Decentralized Stablecoin Payments

⚠️ IMPORTANT: This project is currently in heavy development and may be highly unstable. It is recommended to wait for the stable testing version release before engaging in mining.

Kashd is the reference full node implementation of Kash, a groundbreaking cryptocurrency that aims to establish the most pure form of decentralized stablecoin payments. Building upon the rapid and efficient Kaspa protocol, Kash integrates the Djed stablecoin protocol to create a robust and versatile digital currency ecosystem.

Core Features of Kash (KSH)
  • A Vision for Decentralized Stability: Kash's primary goal is to revolutionize the stablecoin market by introducing KUSD – a stable digital currency envisioned to be the epitome of decentralized stability.

  • Integration of Djed Stablecoin Protocol: The Djed stablecoin protocol is at the heart of Kash's design, enabling the creation of KUSD and KRV, a reserve currency. This integration not only enhances the ecosystem's stability but also its utility. For a detailed understanding of the Djed stablecoin protocol and its role in the Kash ecosystem, refer to the Djed Protocol.

  • ASIC Resistance with RandomX: Kash adopts the RandomX algorithm, an ASIC-resistant proof-of-work mechanism. This choice reflects Kash's commitment to maintaining a decentralized and egalitarian mining landscape.

  • Rapid and Secure Transactions: Kash adopts the BlockDAG network from Kaspa, renowned for its sub-second block times and instant confirmations, providing fast and secure transaction capabilities.

  • Adherence to PHANTOM Protocol: Kash upholds the core attributes of Kaspa, including its reliance on the PHANTOM protocol, a sophisticated generalization of Nakamoto consensus.

Requirements

Go 1.18 or later.

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
  • Clone the Kashd repository:
git clone https://github.com/Kash-Protocol/kashd && cd kashd
  • Before installing Kashd, ensure that the randomx library is properly built. Navigate to the util/randomx directory within the project and execute the build process for randomx:
cd util/randomx && ./build.sh && cd ../../
  • Set the necessary environment variables for CGO and Go build flags:
export CGO_ENABLED=1 &&
export CGO_LDFLAGS="-L$(pwd)/util/randomx/lib -lrandomx -lm" &&
export GOFLAGS='-ldflags=-extldflags="-static"'
  • After setting the environment variables and successfully building randomx, install Kashd and all its dependencies:
go install . ./cmd/...
  • Kashd (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.

Getting Started

Kashd operates with minimal configuration for basic operations. Advanced users can tweak various settings for optimized performance.

kashd

Community and Support

Join our Discord server for community discussions, support, and updates: https://discord.gg/qKT4dAtxEc

Issue Tracker

Report issues and track progress on our GitHub issue tracker. View issue priorities at https://github.com/orgs/Kash-Protocol/projects/1

License

Kashd is licensed under the copyfree ISC License.

Documentation

Overview

Copyright (c) 2018-2019 The kaspanet developers Copyright (c) 2013-2018 The btcsuite developers Copyright (c) 2015-2016 The Decred developers Copyright (c) 2013-2014 Conformal Systems LLC. Use of this source code is governed by an ISC license that can be found in the LICENSE file.

Kashd is a full-node kaspa implementation written in Go.

The default options are sane for most users. This means kashd will work 'out of the box' for most users. However, there are also a wide variety of flags that can be used to control it.

Usage:

kashd [OPTIONS]

For an up-to-date help message:

kashd --help

The long form of all option flags (except -C) can be specified in a configuration file that is automatically parsed when kashd starts up. By default, the configuration file is located at ~/.kashd/kashd.conf on POSIX-style operating systems and %LOCALAPPDATA%\kashd\kashd.conf on Windows. The -C (--configfile) flag can be used to override this location.

Directories

Path Synopsis
app
appmessage
Package appmessage implements the kash appmessage protocol.
Package appmessage implements the kash appmessage protocol.
rpc
cmd
kashwallet/libkashwallet/bip32/base58
Package base58 provides an API for working with modified base58 and Base58Check encodings.
Package base58 provides an API for working with modified base58 and Base58Check encodings.
consensus/utils/txscript
Package txscript implements the kaspa transaction script language.
Package txscript implements the kaspa transaction script language.
dagconfig
Package dagconfig defines DAG configuration parameters.
Package dagconfig defines DAG configuration parameters.
infrastructure
db/database
Package database provides a database for kashd.
Package database provides a database for kashd.
logger
Package logger defines an interface and default implementation for subsystem logging.
Package logger defines an interface and default implementation for subsystem logging.
network/addressmanager
Package addressmanager implements concurrency safe Kash address manager.
Package addressmanager implements concurrency safe Kash address manager.
stability-tests
daa
testing
Package util provides kash-specific convenience functions and types.
Package util provides kash-specific convenience functions and types.
bech32
Package bech32 provides a Go implementation of the bech32 format.
Package bech32 provides a Go implementation of the bech32 format.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL