SuperiorCoin Software Upgrade v0.14.0.2 Release
This is the v0.14.0.2 release of the SuperiorCoin software. This major release is due to the May 15th network update, which in turn adds a new PoW based on Cryptonight-R, added a new block weight algorithm, and introduced a slightly more efficient RingCT format.
This is an intermediary, stable release specifically for the network update. This major network update, which in turn enables Bulletproofs for reduced transaction sizes, sets the ringsize globally to 11 for uniformity of transactions, updates the PoW algorithm to CNv2, and finally sets the max transaction size at half of the penalty-free block size.
This release of the software presents a number of major improvements to SuperiorCoin, as well as a large set of bug fixes.
- Added fix from Ledger for change bug with subaddresses
- Fix crafted coinbase tx mishandling in wallet
- Fix JIT build on mac
- Make slow hash request a restricted RPC request
- Fix off by one in block weight in regtest mode
- Fix fork rules determination for old daemons
- Fix estimated block height for GUI/API
- Fix sync wedge when an incoming tx is already in the pool
- New PoW based on Cryptonight-R
- New block weight algorithm
- New slightly more efficient RingCT format
- Placeholder short payment ID to increase transaction uniformity
- Obsolete long payment IDs are now disabled unless a switch is used
- New event notifications for large block rate changes and blockchain reorgs
- Unmixable outputs can be spent again
- Fix bad pruned transactions JSON in RPC
- Some build fixes for various platforms/setups
- Fix view key parsing when creating a view wallet from the ommand line
- Mark the default-ring-size simplewallet setting as obsolete
- Fix loading an old Ledger wallet in the GUI
- Exit crash fix for the daemon
- Fix seed input not being echoed on Windows
- Fix backspace in seed input echoing ^? on Linux
- Fix connection issues with some Tor setups
- Automatically pull submodules for the Docker build
- Fix build for some ARM variants
- Fix get_transactions RPC sending some binary data rather than hexadecimal
- Fix new wallets generated via the GUI not being loadable again
- Fix change_wallet_password RPC
- Fix the daemon spawned by the GUI keeping a file descriptor to the wallet file
- Fix performance issue due to multiple range proof verification
- Fix Ledger communication issues
- Rename blackball to spent_outputs, since some people seem to think it's a censorship list...
- Fix caching issue with the output distribution RPC
- Fix daemon log colours on (some versions of) Windows
- Mitigate coinbase outputs being preferred by fake output selection
- New Docker file for 64 bit Android
- Ledger code overhaul using HIDAPI
- Blackballing tool allows the wallet to avoid selecting known spent outputs in its rings
- Depends system to be used as a base for reproducible builds
- Generic M/N multisig with M < N-1
- Translation updates
- Non ASCII seed input for Windows
- The spend key is now optionally held encrypted in memory
- More memory wiping to avoid secret data lingering in memory
- Block and transaction notifcation system
- New set of DNSSEC supporting default DNS servers
- Support for DNSSEC keys rollover
- Many minor fixes from Coverity reports
- Memory containing secret data is now locked so it won't get swapped (Linux)
- Preliminary support for non-Ledger hardware wallets
- Fix for blockchain format conversion crash corner case
- Warn about old style unencrypted payment IDs usage
- Building now places objects/binaries in a separate directory for each branch
- Multi output bulletproofs
- Many bulletproof speedups
- Fake output selection improvements (mostly using a gamma distribution)
- monero-wallet-rpc now has a daemon mode
- Cryptonight variant 2
- Travis build bot
- Fixes for --generate-from-json using the wrong wallet filename
- Build fixes for s390x, ARM, Android, Windows, Docker, FreeBSD
- Easier output splitting using sweep_* commands
- The blockchain db now stores prunable and unprunable data separately
- Keccak fix for big endian platforms
- New wallet creation height fix for when the daemon is not running
- New Keccak incremental update mode
- Removal of obsolete transfer_original code
- Transaction fees are now per byte, rather than per kilobyte
- Transaction fees and block size/weight limit now consider notional size ("weight") to account for non-size-linear verification time
- New update_available flag in get_info RPC
- Some minor ringct verification speedup
- Include cumulative difficulty in RPC block header data
- Blocks now have a max weight for a single transaction
- New expect and related objects
- NetBSD support
- Many more performance tests
- Remove tiny bias in random EC scalar generation
- Ring size is now fixed to 11 in the general case
- Performance tests can now report min, median and standard deviation
- Aligned memory allocator
- Terse mode for performance tests
- unbound and miniupnpc are now git submodules
- start_mining RPC now reports whether the daemon is already mining instead of a generic error
- Use more exploit mitigation build options where possible
- cmake >= 3.5 is now needed
- Network connections now bind to the correct IP
- Error out when --wallet-file and --wallet-dir are both used at the same time
- Daemon start time is now withheld when running with --restricted-rpc
- New close_wallet RPC
- Fix for the wallet giving up scanning a transaction at the first invalid public key
- RPC password can now be set using the RPC_LOGIN environment variable
- simplewallet can now use a monero: URI directly
- cn_deserialize can now extract payment IDs from transactions
- The daemon now warns about performance if it detects the blockchain is on a rotating hard disk
- Fix seed usage on big endian platforms
- Compare secret keys in constant time
- New refresh wallet RPC
- Fix wallet going out of sync when it fails to parse a transaction
- Fix wallet failing to load after its internal cached hash chain goes out of sync
- Translation files are now handled when cross compiling
- Fix txpool code infinite loop if a database error occurs
- Speed up get_output_distribution a lot by caching data in the blockchain database
- Some HTTP parsing speedups
- New change_wallet_password RPC
- Block template caching for performance
- simplewallet now understands named priority levels, in additions to numbers
- Resize the blockchain more conservatively
- Fix earliest fork height caching in wallet
- Core dumps are now disabled in wallet release binaries since they would contain secret data
- The logger will now print to the console if the logger isn't live
- Sync blockchin based on bytes received, not blocks received, for better performance
- New codefresh pipeline
- New blockchain_depth and blockchain_ancestry statistics tools
- The wallet can now use a user defined number of Cryptonight rounds for its KDF
- simplewallet now warns about unrecoverable data when rescan_blockchain is run
- Fix for race in network connection shutdown
- Fix for simplewallet misreporting long times
- Fix sanity checking of update record hashes
- simplewallet now points out coinbase outputs in show_transfer
- 0MQ correctness and performance improvements
- Fix for simplewallet dividing by 0 on an invalid dameon response
- New get_address_index wallet RPC
- getbalance RPC now accepts a set of address indices
- New set_tx_key simplewallet command to import tx keys from other wallets
- --log-file now handles filenames without directories
- RPC JSON error response now include the JSON version
- Syncing messages now include a percentage done and blocks left to sync
- Fix quadratic complexity in import_key_images
- New locked_sweep_all simplewallet command
- Make tests use temporary files in a writable directory
- Fix wallet language detection when using --use-english-language-names
- Integrated addresses can now be made for an arbitrary address
- Do not sync read only databases
- Build fix for boost 1.67
- core tests now have a --filter option
- miniupnpc, rapidjson and unbound upstream updates
- Minor HTTP parsing fixes and speedups
- New ignore-fractional-outputs wallet setting to ignore inputs below the fee level
- New --regtest and --fixed-difficulty debug options
- New generatblocks debug RPC
- Prevent the wallet cache from being opened by more than one wallet at a time
- UTF-8 vs UTF-16 filename conversion for windows
- New suggested_confirmations field based on transfer amount and coinbase amount
- Cache ringdb encryption key for speed
- Threading improvements
- Wallet refresh speedups
- alt_chain_info can now show a particular chain
- Fix read buffer overflow in import_key_images
- New get_transaction_pool_hashes JSON RPC
- Lower subaddress lookahead when using a hardware wallet
- Report the blockchain size in getinfo
- Report block hash and height when finding a block
- Fix double header in unsigned transaction file when cold signing
- Fix thoretical P2P layer wedge when getting incoming connection cancellations at just the right time
- Fix lengthy delay when setting auto-refresh off at the wrong time
- Fix 0MQ bind call when address and/or port are empty
- Add disclaimer in the README that third party data is, well, third party, and thus differently trusted
- Fix wallet RPC crashes when there is no open wallet
- Fix wallet crash when using a newly created account
- Batch transactions are now enabled by default in LMDB
- Quantize starting refresh height when starting up the wallet, to help against fingerprinting
- New --max-log-files command line option
- simplewallet can now set to ignore unmixable outputs (run rescan_spent to undo)
- Fix incorrect fee for split transactions
- Report db version number when it is incompatible
- P2P command line options now accept hostnames as well as IP addresses
- Adaptive connection timeout system, to mitigate against DoS
- simplewallet does not prompt for a missing payument ID when sending to subaddresses only
- Log rotation now numbers files if getting current time fails
- simplewallet can now take a filename with rings in th set_ring command
- Fix cold signing with bulletproofs
- --guard-against-pwnage is now --dangerous-unverified-import in blockchain-import, and it now warns and pauses
- Strip copyrighted ICC profile (can't make it up) metadata from monero icon PNG file
- The wallet does not log by default any longer, for privacy
- Consider Tor/I2P addresses as being non-local for daemon trust purposes
- set_daemon wallet command now acccepts an optional trusted/untrusted argument
- Do not try to pop blocks with unexpected version from a read only database
- Drop P2P connection if most blocks are invalid
- New set of wallet RPC for cold signing
- Fix 172.16..31 local IP range detection
- Fix readline interfering with std::cerr usage
- New Windows debug build Makefile targets
- Disable file size sanity check for wallet caches, which can get quite large
- Enable/disable auto safe mode on LMDB where appropriate
- Fix build with GCC 8.1.0
- Warn when no incoming P2P connections are seen
- Use correct unit for fee in simplewallet
- Fix output shuffling for multisig
- Fix race adding the same tx twice to the txpool
- fix configuring version.cpp without git
- Add warnings about inaccurate balances to to watch-only wallet
- New unit tests
- Many more smaller fixes, speedups, improvements and other tweaks
Great work and well done the Superior Coin team!!!