neo-storm
neo-storm copied to clipboard
Add tooling to deploy compiled smart contracts
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 is this going to be similar to the dockerized solution as the neo-local ?
@ansrivas This would something similar yes. Any suggestions you may have?
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.
- After we install
neo-local
we get access tonp-prompt -p -v
- Rather than calling
build path/to/my-smart-contract.py
,neo-storm compile path/to/my-smart-contract.go
would be invoked. - Then we can directly use the
.avm
file innp-prompt
asneo> import contract path/to/my-smart-contract.avm 0710 05 True False
@ansrivas That seems like a very good approach! I will play with it tomorrow.
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 @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?