A list of 100 changes to the next fork upcoming.
The code warrior and robocoder ArqTras and Michal M@lbit have been adding more code to ArQmA. Along with performance enhancements there is a specific focus on internal tamper proofing and security features. The test net is up for the next fork patches as they are integrated.
ArqTras, said thus:
db_lmdb: enable batch transactions by default
add --regtest and --fixed-difficulty for regression testing
update get_info RPC and bump RPC version
alt_chain_info can now give more info about a particular alt chain
db: store cumulative rct output distribution in the db for speed
rpc: add blockchain disk size to getinfo
daemon: show a bit more info with print_block
miner: show id and height when a block is found
rpc: add a non binary get_transaction_pool_hashes RPC
tx_pool: cache check_tx_inputs results
simplewallet.sweep_all: show usage when parsing fails
blockchain_utilities: report file offset where a read error occurs
allow fractional outputs to be ignored
crypto: remove unused unsafe random scalar generator
blockchain: fix getting invalid block data on failure
wallet2: recover from index out of hashchain bounds error
node_rpc_proxy: factor a few RPC calls using get_info
monero-wallet-cli: added locked_sweep_all command
wallet2: unlock keys file before calling verify_password (needed for Windows)
crypto: remove slight bias in key generation due to modulo
blockchain: cache next block difficulty after adding a block
wallet: warn when payment IDs are used
db_lmdb: don't sync a read only DB
wallet2: use a gamma distribution to pick fake outs
added blocks remaining count during synchronization.
simplewallet: fix delay when setting auto-refresh off
p2p: connect via the bound ip, if any
http_protocol_handler: catch invalid numbers when parsing
http_protocol_handler: fix HTTP/x.y parsing
wallet: allow adjusting number of rounds for the key derivation function
abstract_tcp_server2: fix race on shutdown
wallet: disable core dumps on startup in release mode
stack_trace: print stack traces on stdout if the logger isn't live
wallet2: consider minimum fee when testing if balance is sufficient
wallet: distinguish coinbase from other txes in show_transfers
wallet rpc: support making integrated address of given standard address
epee: adaptive connection timeout system
wallet-rpc: added IPs to error logging in simple_http_connection_handler
wallet-rpc: add get_address_index command
wallet-rpc: filter getbalance response by address index
simplewallet: add set_tx_key for importing tx keys from 3rd party wallets
blockchain_blackball: allow resumable interrupt with ^C
wallet2: guard against bad outputs in import_outputs
wallet2: avoid using arbitrary random values when unknown
simplewallet: make sure wallet config is stored right after creation
blockchain_blackball: use a bit less memory
wallet2: make --restricted-rpc available for wallet RPC only
wallet: wipe seed from memory where appropriate
store secret keys encrypted where possible
common: add a class to safely wrap mlock/munlock
crypto: make secret_key automatically mlock
core: cache block template where possible
blockchain_db: remove unused get_output_key variant
wallet2: do not divide by 0 on invalid daemon response
core: sync database based on bytes added, not blocks added
cryptonote_protocol: don't serialize an unneeded new block message
Fixed ZMQ-RPC for transactions and GET_BLOCKS_FAST
simplewallet: add a warning and prompt on rescan_blockchain
rpc-wallet: refresh command added
add and use constant time 32 byte equality function
electrum-words: fix bytes_to_words on big endian
block_queue: faster check whether a block was requested
wallet: store trusted-daemon flag in wallet2
wallet2: remove obsolete pruned/unpruned case
simplewallet: allow named priority levels for default-priority
wallet_rpc_server: remove unused amount_keys field in transfer RPC
Do memwipe for critical secret keys copied to rct::key
add change_wallet_password wallet rpc command
epee: resize vectors where possible in serialization
epee: some speedup in parsing
db_lmdb: speedup the get_output_distribution common case
wallet2: ask for a binary output distribution, for speed
CMakeLists.txt: disable -fstack-protector* on windows
wallet rpc: Add close_wallet RPC
db_lmdb: resize blockchain database when 90% filled
is_hdd update
remove obsolete daemon selection of fake outs and old tx construction
CMakeLists.txt: detect -fcf-protection=full and -fstack-clash-protection
simplewallet: handle transfers using a arq: URI
wallet2: fix refresh retry when a block/tx fails to parse
wallet2: trim hash chain after fast refresh of hashes
wallet2: fix checking the wrong vector when adding hashes
abstract_tcp_server2: fix binding to the wrong IP
epee: use the socket::bind variant which does not throw
cn_deserialize: extract payment ids from extra nonce
remove unused fields from relay_tx RPC
cryptonote_format_utils: do not early out on invalid tx pubkeys
wallet_rpc_server: error out if wallet-file and wallet-dir are both used
wallet: ask-password can now ask without encrypting the secret spend key
cryptonote_config: add get_config to refactor x = testnet ? config::testnet::X : stagenet config::stagenet::X : config::X
BlockchainDB: migration from v2 to v3
add daemonizer to rpc wallet
api/wallet: properly disable key encryption
wallet: use wipeable_string in more places where a secret is used
wipeable_string: add hex_to_pod function
rpc: allow to pass RPC login via RPC_LOGIN env var
daemon: request no PoW hashes we don't need when asking for blocks
rpc: return "already mining" in start_mining if already mining
WalletAPI: 'hasMultisigPartialKeyImages' function added
wallet2_api: bring up to latest wallet api
Summary: The ArQmA network is hybridizing into an internally checking system that increases anti tampering efforts from external and internal hacks.
This puts the software close to something that antivirus companies do to prevent bugs and attempts to block other programs from stealing information and using it against the programs.
Michal said thus in Telegram the other day:
Michal vel m@lbit - - -
https://arqma.com, [14.09.18 15:55]
We have added many security procedures to new daemon as well to wallets. Rpc as long simplewallet
After a while you will not be able to see balance either blockchain height while refreshing without putting wallet password
But password is shadowed and console listening is off
Everything is made in memory which is wiped straight after you press enter
All keys (private and public) are coded all the time and keys files are locked
Keys are become decoded and unlocked only while needed and no data is stored on any drive
All is made in memory on-the-fly and after pressing Enter memory is wiped
Bulletproofs becoming to be mandatory as well
We are staying at v9 blockchain so far because at v10 blockchain we will introduce multi-bulletproofs outputs
What else?
Unlocked daemon-mining threads
Till now you can mine direct at daemon using only one thread. Since now you will be able to use more than one thread
Every data send over Arq-Net is verified and crypted by 32 bit key
On top of that you can choose how many times your keys will be encrypted. By default is set to 1
------------------------
This also might mean that after the hard fork, we should be able to pass the bar for getting an antivirus companies from arbitrarily banning ArQmA software.
Currently some of the programs are in the WS.Reputation.1 bucket of category without a code review or testing on the part of antivirus companies like Symantec.
One could say that's lazy on their part since they are supposed to judge programs on their behavior and look at the code and results. (Argonator's judgement, so be it.)
Crypto currently is here, and it's really slothful to not catch up and start qualifying good versus bad crypto applications.
Now, this is proof that this coin is not just a copy pasta coin, new coded added, more security, and a second fork in less than 120 days likely to bring the improvements online.