change token contract version to 0.0.3 and delete used old codes?
==== 3.10.0 ====
dump and analyse p2p connection graph?
add eth address
auto generate golang vm function bindings for v8, or use rogchap/v8go
iwallet auto ed25519 to secp256k1 conversion
eth address call back?
metamask and hardware support(transfer only)?
evm support?
==== 3.11.0 ====
download regenisis tar by default
run multi validator in one iserver process. Add non-validator mode.
add mainnet config files and scripts to this repo
improve server start UX. like iserver --mainnet / iserver --localnet. Automatically create the config folder if not exists yet. Add cmd options like --config / --datadir
==== 3.12.0 ====
add tool to import/replay blocks
Allow go install ... to install iserver
use embedded build info
==== 4.x.x ====
use more common notion like "validator" / "stake" / "statedb". change 'NORMAL' to 'VALIDATOR'. 'finalized'
panic when disk is full, auto recovery after disk full: "cannot parse invalid wire-format data"
allow set height(fork) for --try_tx
Check port open / CPU freq / key register for validator
better NFT interface?
official iost domain name service. "xx.ins"
add WitnessBlock { block, reads, writes } to allow stateless execution(for vm upgrade testing) and diff sync
snapshot state at a block number during running
more robust p2p and consensus test? use libp2p dht?
Make v8vm version consistent in MacOS and Linux. Currently Linux uses v8 v7.0 while MacOS uses v8 v6.5. This inconsistency incurs some serious bugs in the past.
Support arm64 as a development environment, such as Apple silicon, Huawei kunpeng and Amazon graviton. NOTICE: support arm64 as a deployment environment may be quite difficult due to some float computation inconsistency, i guess
Some users experienced very long time to rejoin p2p network https://github.com/iost-official/go-iost/issues/1169. My first guess is that they may not persistent and load p2p routing table correctly. Maybe more log is helpful. We may need to add more public seeding p2p nodes.
address <-> account <-> smart contract wallet. ETH address?
use whitelist js features, so future v8vm upgrade will not introduce new dangerous features.
punish node who do not open 30000 p2p port
add randomness to improve consensus safety
add circom golang contract verifier
write base.iost in golang to speedup sync
rewrite js crypto object to contract call
add more p2p seed nodes in default config file. We need to tool to dump the whole p2p network nodes.
store account keypair type(ed25519/secp256k1) on chain? We can use zkp to connect ed25519 pubkey to secp256k1 pubkey. disable ed25519 first? use a zkp smart contract to store pubkey mapping
ctrl c sometimes not worked
refactor POB code. make a formal verification. fuzz test.
add state root and receipt root to block header. or use "diffhash" to check consistency?
add log rotation
check js contracts are correctly JITed
check disk size after every block flush. panic early when less than 1G free disk available
update server process into three process: 1 network/consensus/sidecar/p2p 2 kvdb/state/data/history 3 exec/vm/stateless
re-write validator committee rotation to solidity or golfing?
iserver --mainnet
/iserver --localnet
. Automatically create the config folder if not exists yet. Add cmd options like--config
/--datadir
go install ...
to install iserverinstalls libs into sys dir. Can this be avoided?no easy way. Better don't use dylib.