aionnetwork / AVM

Enabling Java code to run in a blockchain environment
https://theoan.com/
MIT License
49 stars 25 forks source link

[CLOSED] Compatibility with existing components/tools #232

Closed aionbot closed 5 years ago

aionbot commented 5 years ago

Issue created by yulongaion (on Tuesday Sep 04, 2018 at 20:18 GMT)

Needs to decide whether the AVM event model is going to be compatible with Ethereum's. Also, are we going to cooperate with the ecosystem team to make the web3 supports AVM.

References:

aionbot commented 5 years ago

Comment by romaion (on Tuesday Sep 11, 2018 at 16:03 GMT)

This breaks down to the following subtasks:

  1. Figure out AVM <-> Kernel Events/logs interface
  2. Figure out Kernel API
  3. Figure out Web3.j (Java) API
  4. Decide on approach for AION Java API
  5. Figure out how APIs for FVM and AVM coexist
aionbot commented 5 years ago

Comment by romaion (on Thursday Sep 13, 2018 at 13:39 GMT)

  1. AVM<->Kernel events/logs interface: Currently, FastVM provides events/logs through callback with 3 arguments: byte[] address byte[] topics byte[] data. All these not RLP-encoded.
aionbot commented 5 years ago

Comment by romaion (on Friday Sep 14, 2018 at 15:09 GMT)

2,3,4: There are 2 APIs which app developers can use to talk to the kernel: web3.js(JavaScript) and aion (Java). Kernel team doesn't have plans to implement web3.j (Java) for kernel themselves. So we have to leave with aion java api until community build aion web3.j.

aionbot commented 5 years ago

Comment by romaion (on Friday Sep 14, 2018 at 15:24 GMT)

  1. "Figure out how APIs for FVM and AVM coexist": High-level answer based on my brief overview of the AION API is the following.
    • AION API doesn't have a wide adoption therefore can be changed significantly to integrate AVM
    • If web3.j is implemented then it should be able to use AVM and FVM the same way because web3.j doesn't specify a way to choose VM. So, my suggestion would be to keep one API for both AVM and FVM but distinguish them by address or contract code or something similar.