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

Get devopment frameworks like Truffle to work with Nimbus #103

Open
zah opened this Issue Aug 9, 2018 · 2 comments

Comments

Projects
None yet
2 participants
@zah
Member

zah commented Aug 9, 2018

Now that we have a nearly feature-complete EVM implementation, our next goal is to start executing increasingly more complex code. It should be possible to use Nimbus with some of the existing ethereum development tools and frameworks in order to test and execute arbitrary smart contract code.

As an example of a very popular development framework, see Truffle:
https://medium.com/coinmonks/test-a-smart-contract-with-truffle-3eb8e1929370

Such tools usually interact with a locally running empty development chain. The work-flow is the following:

  1. Smart contract code is written and compiled to a local file (this is taken care by the framework)

  2. The contract is published to a locally running blockchain. Truffle uses JSON-RPC to talk to a locally running Ethereum client. By default, Truffle prefers to use its own Ethereum implementation (see truffle develop, but it should be possible to pair it with a local copy of Nimbus started with an empty custom chain. See this guide for pairing Truffle with Geth as an example).

  3. Transactions are created which execute methods of the contract. Again, this is done over JSON-RPC.

To support this work-flow, Nimbus will have to be enhanced with specific configuration options and the ability to work with multiple blockchains stored on disk. All required JSON-RPC calls employed by the development framework will have to be implemented. This issue is considered an "Epic", it should be broken down in smaller tasks once they are identified.

@zah

This comment has been minimized.

Member

zah commented Aug 16, 2018

This is the list of RPC procs most crucial for Embark:

eth_sendTransaction
eth_call
eth_getTransactionReceipt
eth_accounts
eth_getCode
eth_getBlockByNumber
eth_estimateGas
web3_clientVersion - so we can display it's Nimbus running...
eth_gasPrice
shh_version and other whisper methods
@coffeepots

This comment has been minimized.

Member

coffeepots commented Aug 21, 2018

  • eth_sendTransaction

  • eth_call

  • eth_getTransactionReceipt

  • eth_accounts

  • eth_getCode

  • eth_getBlockByNumber

  • eth_estimateGas

  • web3_clientVersion

  • eth_gasPrice

  • shh_version

  • shh_post

  • shh_newIdentity

  • shh_hasIdentity

  • shh_newGroup

  • shh_addToGroup

  • shh_newFilter

  • shh_uninstallFilter

  • shh_getFilterChanges

  • shh_getMessages

@coffeepots coffeepots referenced this issue Nov 19, 2018

Open

Current TODO items for 1.0 #177

6 of 163 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment