Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvement Plans #1171

Open
lispc opened this issue Dec 23, 2020 · 0 comments
Open

Improvement Plans #1171

lispc opened this issue Dec 23, 2020 · 0 comments
Labels
enhancement New feature or request

Comments

@lispc
Copy link
Collaborator

lispc commented Dec 23, 2020

  1. change token contract version to 0.0.3 and delete used old codes?
  2. ==== 3.10.0 ====
  3. dump and analyse p2p connection graph?
  4. add eth address
  5. auto generate golang vm function bindings for v8, or use rogchap/v8go
  6. iwallet auto ed25519 to secp256k1 conversion
  7. eth address call back?
  8. metamask and hardware support(transfer only)?
  9. evm support?
  10. ==== 3.11.0 ====
  11. download regenisis tar by default
  12. run multi validator in one iserver process. Add non-validator mode.
  13. add mainnet config files and scripts to this repo
  14. improve server start UX. like iserver --mainnet / iserver --localnet. Automatically create the config folder if not exists yet. Add cmd options like --config / --datadir
  15. ==== 3.12.0 ====
  16. add tool to import/replay blocks
  17. Allow go install ... to install iserver
  18. use embedded build info
  19. ==== 4.x.x ====
  20. use more common notion like "validator" / "stake" / "statedb". change 'NORMAL' to 'VALIDATOR'. 'finalized'
  21. panic when disk is full, auto recovery after disk full: "cannot parse invalid wire-format data"
  22. allow set height(fork) for --try_tx
  23. Check port open / CPU freq / key register for validator
  24. better NFT interface?
  25. official iost domain name service. "xx.ins"
  26. add WitnessBlock { block, reads, writes } to allow stateless execution(for vm upgrade testing) and diff sync
  27. snapshot state at a block number during running
  28. more robust p2p and consensus test? use libp2p dht?
  29. 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.
  30. 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
  31. $(INSTALL) $(INSTALL_PATH)/*$(LIB_SUFFIX) /usr/local/lib
    installs libs into sys dir. Can this be avoided? no easy way. Better don't use dylib.
  32. k8s test https://github.com/iost-official/iost-k8s-test not works anymore seems due to docker/k8s recent upgrade.
  33. node should cache failed tx reasons for a while (but don't broadcast thems). better err msg than 'tx not found'
    ilog.Errorf("PrepareTx failed. tx %v limit %v err %v", t.String(), limit, err)
    . check signature in rpc level. Enable TryTx
  34. Some users experienced very long time to rejoin p2p network Is there a particular way to get and add peer faster? #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.
  35. address <-> account <-> smart contract wallet. ETH address?
  36. use whitelist js features, so future v8vm upgrade will not introduce new dangerous features.
  37. punish node who do not open 30000 p2p port
  38. add randomness to improve consensus safety
  39. add circom golang contract verifier
  40. write base.iost in golang to speedup sync
  41. rewrite js crypto object to contract call
  42. add more p2p seed nodes in default config file. We need to tool to dump the whole p2p network nodes.
  43. 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
  44. ctrl c sometimes not worked
  45. refactor POB code. make a formal verification. fuzz test.
  46. add state root and receipt root to block header. or use "diffhash" to check consistency?
  47. add log rotation
  48. check js contracts are correctly JITed
  49. check disk size after every block flush. panic early when less than 1G free disk available
  50. update server process into three process: 1 network/consensus/sidecar/p2p 2 kvdb/state/data/history 3 exec/vm/stateless
  51. re-write validator committee rotation to solidity or golfing?
@lispc lispc added the enhancement New feature or request label Dec 23, 2020
@lispc lispc changed the title Misc Feature Requests Improvement Plans Jan 21, 2021
@lispc lispc pinned this issue Jan 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant