Grsd

Grsd is an alternative full node groestlcoin implementation written in Go (golang).

If you want an alternative full node wallet and are an advanced user, then grsd is the right choice for you.
It also properly relays newly mined blocks, maintains a transaction pool, and relays individual transactions that have not yet made it into a block.
It ensures all individual transactions admitted to the pool follow the rules required by the block chain and also includes more strict checks which filter transactions based on miner requirements ("standard" transactions).

Changelog 0.22.0
• Handle notfound messages from peers in netsync package
• Add compatibility for getblock RPC changes in bitcoind 0.15.0
• Add new optional Params field to rpcclient.ConnConfig
• Add new error code ErrRPCInWarmup in btcjson
• Add compatibility for changes to getmempoolentry response in groestlcoind
• Add rpcclient methods for estimatesmartfee and generatetoaddress commands
• Add rpcclient method for getblockstats command
• Parse serialized transaction from createrawtransaction command using both segwit, and legacy format
• Support cookie-based authentication in rpcclient
• Add rpcclient method for getchaintxstats command
• Add rpcclient method for fundrawtransaction command
• Add rpcclient method for getbalances command
• Add new method rpcclient.GetTransactionWatchOnly
• Fix panic in fieldVal.SetByteSlice when called with large values, and improve the method to be 35% faster
• Add -regtest mode to btcctl
• Fix a bug due to a deadlock in connmgr's dynamic ban scoring
• Add blockchain.NewUtxoEntry() to directly create entries for UtxoViewpoint
• Replace LRU cache implementation in peer package with a generic one from decred/dcrd
• Add support for witness tx and block in notfound msg
• Add support for receiving sendaddrv2 messages from a peer
• Fix bug in peer package causing last block height to go backwards
• Add chain parameters for connecting to the public Signet network
• Fix bug causing panic due to bad R and S signature components in btcec.RecoverCompact
• Set the name (secp256k1) in the CurveParams of the S256 curve
• Remove unknown block version warning in the blockchain package, due to false positives triggered by AsicBoost
• Add chaincfg.RegisterHDKeyID function to populate HD key ID pairs
• Add new method mining.AddWitnessCommitment to add the witness commitment as an OP_RETURN output within the coinbase transaction.
• Support Batch JSON-RPC in rpcclient and server
• Add rpcclient method to invoke getdescriptorinfo JSON-RPC command
• Update the rpcserver handler for validateaddress JSON-RPC command to have parity with the bitcoind 0.20.0 interface
• Add rpcclient method to invoke getblockfilter JSON-RPC command
• Add signmessagewithprivkey JSON-RPC command in rpcserver
• Add rpcclient method to invoke importmulti JSON-RPC command
• Add watchOnly argument in rpcclient method to invoke listtransactions JSON-RPC command
• Update btcjson.ListTransactionsResult for compatibility with Bitcoin Core 0.20.0
• Support nullable optional JSON-RPC parameters
• Add rpcclient and server method to invoke getnodeaddresses JSON-RPC command
• Add rpcclient methods to invoke PSBT JSON-RPC commands
• Add rpcclient method to invoke listsinceblock with the include_watchonly parameter enabled
• Add rpcclient method to invoke deriveaddresses JSON-RPC command
• Add rpcclient method to invoke getblocktemplate JSON-RPC command
• Add rpcclient method to invoke getaddressinfo JSON-RPC command
• Add rpcclient method to invoke getwalletinfo JSON-RPC command
• Fix error message in rpcserver when an unknown RPC command is encountered
• Fix error message returned by estimatefee when the number of blocks exceeds the max depth
• Update btcjson.GetBlockChainInfoResult to include new fields in Bitcoin Core
• Add ExtraHeaders in rpcclient.ConnConfig struct
• Fix bitcoind compatibility issue with the sendrawtransaction JSON-RPC command
• Add new JSON-RPC errors to btcjson package, and documented them
• Add rpcclient method to invoke createwallet JSON-RPC command
• Add rpcclient methods to invoke backupwallet, dumpwallet, loadwallet and unloadwallet JSON-RPC commands
• Fix unmarshalling error in getmininginfo JSON-RPC command, for valid integers in scientific notation
• Add rpcclient method to invoke gettxoutsetinfo JSON-RPC command
• Add rpcclient method to invoke signrawtransactionwithwallet JSON-RPC command
• Add txid to getblocktemplate response of rpcserver
• Fix monetary unit used in createrawtransaction JSON-RPC command in rpcserver
• Add rawtx field to btcjson.GetBlockVerboseTxResult to provide backwards compatibility with older versions of Bitcoin Core
• Update btcutil dependency
• Add Dockerfile to build and run btcd on Docker
• Rework documentation and publish on https://btcd.readthedocs.io
• Add support for Go 1.15
• Add Go 1.14 as the minimum supported version of Golang

Features
• Works via TOR or SOCKS5 proxy
• Can use bootstrap.dat format as blockchain database
• Supports Websockets (grsd/grswallet) and HTTP POST mode (groestlcoin core)
• Provides callback and registration functions for grsd/grswallet notifications
• Supports grsd extensions
• Translates to and from higher-level and easier to use Go types
• Offers a synchronous (blocking) and asynchronous API
• Supports the getblocktemplate RPC
• Comes with a seperate grsctl command line utility that can be used to both control and query btcd via RPC. Grsd does not enable its RPC server by default; You must configure at minimum both an RPC username and password or both an RPC limited username and password

This application is licensed under copyfree ISC. There is no warranty and no party shall be made liable to you for damages. If you lose coins due to this app, no compensation will be given. Use this app solely at your own risk.

Source code: https://github.com/Groestlcoin/grsd/