NeoResearch / neocompiler-eco

NeoCompiler Eco: compile, deploy, test NEO smart contracts and tools for the decentralized web
https://neocompiler.io
MIT License
37 stars 21 forks source link
blockchain csharp neo online-ide private-network python smart-contracts

NeoCompiler Eco 3+

Open in Gitpod

Open in GitHub Codespaces

This is an open-source initiative for providing an easy access to on NEO ecosystem.

In particular, we provide simple interact and didactic interfaces for allowing online compiling for C#, Python, Go and Java.

Official Documentation on ReadTheDocs

Documentation Status

Building Sphinx Documentation Locally

Just type ./make-docs.sh, and find ./docs/build/html/index.html (the same as ReadTheDocs)

Suggestions

Browsers/Devices

The current front-end interface can be accessed from:
Compilers RPC API services are available at:
Other useful services

What does it currently do

Roadmap

Dependencies

Docker recommendations

Docker technology is essential for sandboxing all compilers in different environments (for different languages). Docker compose is now integrated with desktop docker.

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo apt-key fingerprint 0EBFCD88

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt update

sudo apt-get install docker-ce docker-ce-cli containerd.io

If necessary, add user to docker group: sudo usermod -a -G docker $USER

Build everything

The online command required to create our own NeoCompiler Ecosystem, suitable for private of public blockchain projects.

This will call a docker-compose with NeoCompiler Private Net (Eco) + NeoScan (optional). Furthermore, it will set all available compilers and open the front/backend interface and server, respectively.

./build_everything.sh

Developers guidelines

Basically, two steps are required: A1 and A2. Both are described below.

A1) Building compilers

This script already builds the compilers and starts the server:

./docker-sock-express-compilers/docker-compilers/buildCompilers.sh

Building C# Neo Core Compiler entrypoint based image

The backend for C# is provided using native github/neo-project tools, only two steps are necessary to build and tag image:

cd /docker-sock-express-compilers/docker-compilers/compilers/docker-compiler-csharp

docker_build.sh

Running express node servers

Base images express nodes and dockers

docker-sock-express-compilers/docker-ubuntu-docker-node-express

./docker_build-all.sh will build both:

Http front-end: cd /docker-sock-express-compilers/docker-http-express

docker compose up

Compilers RPC API Backend: cd docker-sock-express-compilers/docker-compilers

docker compose up

Eco Services: cd docker-sock-express-compilers/docker-services

docker compose up

A2) Eco Network Functionalities

Docker compose is the main tools that acts for the creation of our micro-service. This script will start all necessary backend functionalities and neo-csharp-nodes.

In particular, we currently have:

Dealing with docker compose swarm of containers

Start up the container, checking the messages and following warnings

Simply run runEco_network.sh (integrated with .env file)

or:

cd ./docker-compose-eco-network

docker compose up

Start up the container in a detached mode

docker compose up -d

Feel free to take is down

docker compose down

However, consider stopping and restarting

docker compose stop
docker compose start

NeoCompiler Eco useful commands and ideas

Other functionalities and integrations are possible and some are implemented

It is also possible to integrate the Eco Network with lighwallet and explorers.

Other parameters

One could check docker docker-compose.yml, picking up a combination of your choice from docker-compose-eco-network folder. This can be done for locally modifying some characteristics.

Run build_everything.sh with an additional parameter --no-build and your modified node zip of the private net will be called, use the name neo-cli-built.zip.

Useful Commands

open csharpnodes

Contributing

LICENSE MIT

This project is part of NeoResearch initiative and it is freely available at NeoCompiler.io. The website is rebooted periodically, in order to keep resource usage low, so that everyone is welcome to use it.

NeoCompiler Eco team @igormcoelho and @vncoelho

Copyleft 2017-2020