Giter Site home page Giter Site logo

p9c / podlegacy Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 118.37 MB

Core blockchain client for the Parallelcoin network

Home Page: https://parallelcoin.info

License: ISC License

Go 99.62% Shell 0.35% Dockerfile 0.03%
btcd bitcoin btcsuite cryptocurrency parallelcoin golang

podlegacy's Introduction

The Parallelcoin Pod ISC License GoDoc

Next generation full node for Parallelcoin, forked from btcd

Hard Fork 1: Plan 9 from Crypto Space

9 algorithms can be used when mining:

  • Blake14lr (decred)
  • Skein (myriadcoin) Cryptonote7v2
  • Lyra2REv2 (sia)
  • Keccac (maxcoin, smartcash)
  • Scrypt (litecoin)
  • SHA256D (bitcoin)
  • GOST Stribog *
  • Skein
  • X11 (dash)

Stochastic Binomial Filter Difficulty Adjustment

After the upcoming hardfork, Parallelcoin will have the following features in its difficulty adjustment regime:

  • Exponential curve with power of 3 to respond gently the natural drift while moving the difficulty fast in below 10% of target and 10x target, to deal with recovering after a large increase in network hashpower

  • 293 second blocks (7 seconds less than 5 minutes), 1439 block averaging window (about 4.8 days) that is varied by interpreting byte 0 of the sha256d hash of newest block hash as a signed 8 bit integer to further disturb any inherent rhythm (like dithering).

  • Difficulty adjustments are based on a window ending at the previous block of each algorithm, meaning sharp rises from one algorithm do not immediately affect the other algorithms, allowing a smoother recovery from a sudden drop in hashrate, soaking up energetic movements more robustly and resiliently, and reducing vulnerability to time distortion attacks.

  • Deterministic noise is added to the difficulty adjustment in a similar way as is done with digital audio and images to improve the effective resolution of the signal by reducing unwanted artifacts caused by the sampling process. Miners are random generators, and a block time is like a tuning filter, so the same principles apply.

  • Rewards will be computed according to a much smoother, satoshi-precision exponential decay curve that will produce a flat annual 5% supply expansion. Increasing the precision of the denomination is planned for the next release cycle, at 0.00000001 as the minimum denomination, there may be issues as userbase increases.

  • Fair Hardfork - Rewards will slowly rise from the initial hard fork at an inverse exponential rate to bring the block reward from 0.02 up to 2 in 2000 blocks, as the adjustment to network capacity takes time, so rewards will closely match the time interval they relate to until it starts faster from the minimum target stabilises in response to what miners create.

Wallet

The pod has no RPC wallet functionality, only core chain functions. It is fully compliant with the original parallelcoind for these functions. For the wallet server, mod, which works also with the CLI controller podctl, it will be possible to send commands to both mod (wallet) and pod full node using the command line.

A Webview/Golang based GUI wallet will come a little later, following the release, and will be able to run on all platforms with with browser or supported built-in web application platforms, Blink and Webkit engines.

* At the time of release there will not be any GPU nor ASIC miners for the GOST Stribog (just stribog 256 bit hash, not combined) and Highwayhash.

Installation

For the main full node server:

go get github.com/parallelcointeam/pod

You probably will also want CLI client (can also speak to other bitcoin protocol RPC endpoints also):

go get github.com/parallelcointeam/pod/cmd/podctl

Requirements

Go 1.11 or newer.

Installation

Windows not available yet

When it is, it will be available here:

https://github.com/parallelcointeam/pod/releases

Linux/BSD/MacOSX/POSIX - Build from Source

$ 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 ~/goprojects 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 pod, all dependencies, and install it:
$ go get github.com/parallelcointeam/pod
  • pod (and utilities) will now be installed in $GOPATH/bin. If you did not already add the bin directory to your system path during Go installation, we recommend you do so now.

Updating

Windows

Install a newer MSI

Linux/BSD/MacOSX/POSIX - Build from Source

  • Run the following commands to update pod, all dependencies, and install it:
$ cd $GOPATH/src/github.com/parallelcointeam/pod
$ git pull && glide install
$ go install . ./cmd/...

Getting Started

pod has several configuration options available to tweak how it runs, but all of the basic operations described in the intro section work with zero configuration.

Windows (Installed from MSI)

Launch pod from your Start menu.

Linux/BSD/POSIX/Source

$ ./pod

Discord

Come and chat at our (discord server](https://discord.gg/nJKts94)

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

pod is licensed under the copyfree ISC License.

podlegacy's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

podlegacy's Issues

Hardfork Issue: Scrypt minimum difficulty is too high

The difficulty minimum for scrypt is absurd. All hashes will satisfy it. It only takes a millisecond.

mplb, _ := hex.DecodeString("fffff00000000000000000000000000000000000000000000000000000000000")

The difficulty should be at least 1 bit of zero on the MSB, which means average 2 hashes to a solution. Even 32 bits isn't nearly low enough. Logically, it should be at least a minute on a budget laptop.

Proposed changes for Hard Fork

  • Adding Proof of Work verifiers and PoW modes for pod:
    • Equihash (GPU and ASIC mineable)
    • Cryptonote 6 and 7 (latter only GPU mineable)
    • Cuckoo Cycle (CPU and GPU mineable, no ASIC known, experimental ? )
  • Change to similar difficulty adjustment as Monero:
    • 288 blocks back (per algorithm, so up to 5 days with all algos running)
    • blocks are sorted
    • top 22 and bottom 22 block times are removed
    • old difficulty * average time * actual time (or max 4 and 6 minutes limited) / target time = new difficulty
  • Change reward calculation to exponential decay following the same curve but block-by-block

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.