<img
src="https://github.com/NeoResearch/neoresearch.github.io/blob/master/assets/images/logo/Gemcut-butterfly/butterfly-banner.png"
/>
<img
src="https://github.com/NeoResearch/neocompiler-eco/raw/v3.5.0/public/images/logo_neoresearch.png"
width="125px;" />
<img
src="https://github.com/NeoResearch/neocompiler-eco/raw/v3.5.0/public/images/prototype-icon-eco.png"
width="125px;" />
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.
.env file;O3wallet/neolink project (or any other), to allow secure key management for Test/MainNetFor Debian-based systems:
apt install npm
apt install nodejs-legacy
npm install
Pull submodules:
* git submodule update --init --recursive (first time);
* then, git submodule update --recursive --remote
On Windows wget might be needed to be installed: https://eternallybored.org/misc/wget/
We need docker-compose version 1.23.1 (or more), so we recommend the following steps for installation:
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
echo "export PATH=\$PATH:/usr/local/bin/" >> ~/.bashrc
source ~/.bashrc
Docker technology is essential for sandboxing all compilers in different environments (for different languages).
We DO NOT recommend packages docker.io/docker-engine: sudo apt purge docker docker-engine docker.io.
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common gnupg2
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 install docker-ce
bionic (Ubuntu 18.04) repository:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"sudo apt install apparmor=2.12-4ubuntu5 (the official 2.12-4 version was denying network access to docker)Adding user to docker group: sudo usermod -a -G docker $USER
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
Basically, two steps are required: A1 and A2. Both are described below.
This script already builds the compilers and starts the server:
./buildCompilers.sh
compilers/docker-compiler-csharp/docker_build_list_of_compilers.shHttp front-end: ./runHttpExpress.sh or nohup ./runHttpExpress.sh > ./express-servers/outputs/nohupOutputRunHttpExpress.out 2> ./express-servers/outputs/nohupOutputRunHttpExpress.err < /dev/null &
Compilers RPC API: (cd express-servers; ./run-CompilerExpress-RPC.sh)
Eco Services: (cd express-servers; ./run-EcoServicesExpress-RPC-SocketIo.sh)
Compilers and Eco Services with nohup: (cd express-servers; ./startAllExpressNohup.sh)
The backend for C# is provided by mono, only two steps are necessary to build and tag image docker-mono-neo-compiler:
cd docker-neo-mono
docker_build.sh
The backend for Python is provided by neo-boa compiler, only two steps are necessary to build and tag image docker-neo-boa:
cd docker-neo-boa
docker_build.sh
The backend for Go is provided by neo-go team, only two steps are necessary to build and tag image docker-neo-go:
cd docker-neo-go
docker_build.sh
The backend for Java is provided by neoj compiler (in mono), only two steps are necessary to build and tag image docker-neo-java-compiler:
cd docker-java
docker_build.sh
Docker-compose is the main tools that acts for the creation of our micro-service.
This script will start all necessary backend functionalities, neo-csharp-nodes and neo-scan (optional, check .env).
In particular, we currently have:
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
It is also possible to integrate the Eco Network with Neondb and NeoTracker.
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 characteristic of NeoCompiler.
Run build_everything.sh with an additional parameter --no-build and your modified files of the private net will be called.
docker exec -it eco-neo-csharp-node1-running bashscreen -dr will show the screen/opt/run.sh will start a new screen (if you killed the last process);/opt/start_node.sh will start the node directly in the terminal.If you have ideas or issues, you can inform directly at github or contact us directly
Check the open issues and pull requests for existing discussions.
make push-tag after merging your pull request.Anyway, you already were part of team... :P
Our team is currently formed by researchers/professors, so our time is very constrained... if you feel you can help us, don't hesitate!
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-2019
$ claude mcp add neocompiler-eco \
-- python -m otcore.mcp_server <graph>