neo-storm icon indicating copy to clipboard operation
neo-storm copied to clipboard

Add tooling to deploy compiled smart contracts

Open anthdm opened this issue 6 years ago • 6 comments

Problem

Currently, there is no tooling available in neo-storm to deploy compiled smart contracts.

Solution

We could create a native Go implementation for deploying them, a better solution would be to create some kind of Python wrapper that enables this without to much pain for the end-user.

Discussion can be continued in comments below

anthdm avatar Aug 26 '18 13:08 anthdm

@anthdm is this going to be similar to the dockerized solution as the neo-local ?

ansrivas avatar Aug 26 '18 14:08 ansrivas

@ansrivas This would something similar yes. Any suggestions you may have?

anthdm avatar Aug 26 '18 16:08 anthdm

If this is just for testing on a private network then I believe neo-local would work really fine. A docker-volume could be shared between multiple containers.

  1. After we install neo-local we get access to np-prompt -p -v
  2. Rather than calling build path/to/my-smart-contract.py, neo-storm compile path/to/my-smart-contract.go would be invoked.
  3. Then we can directly use the .avm file in np-prompt as neo> import contract path/to/my-smart-contract.avm 0710 05 True False

ansrivas avatar Aug 26 '18 17:08 ansrivas

@ansrivas That seems like a very good approach! I will play with it tomorrow.

anthdm avatar Aug 26 '18 17:08 anthdm

I think it's fine when deploying to private network with neo-local + neo-python.
I have deployed a couple of smart contracts to the MainNet and it's a pain to have to wait for neo-python to finish syncing. Slow and unreliable. (If I were good at python I would totally contribute to neo-python)

It would be great if we have a way to deploy on either TestNet or MainNet without relying on a node to be fully synced. All it needs is just the UTXO that has enough gas to deploy as a transaction input. Of course, we still have to rely on UTXO's API server like neoscan or NEL to return that UTXO data but that seems better in my opinion.

apisit avatar Sep 06 '18 09:09 apisit

@apisit @ansrivas I think we better wait for the updates on the CLI tooling in neo-local. After that is implemented we can use that to bootstrap neo-storm on top of it. What do you guys think?

anthdm avatar Sep 15 '18 07:09 anthdm