All Projects → tonlabs → tonos-se

tonlabs / tonos-se

Licence: Apache-2.0 license
Local Node for Everscale DApp development and testing

Programming Languages

rust
11053 projects
solidity
1140 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to tonos-se

everdev
Everscale Development Environment - Set up all the core Developer tools and work with Everscale blockchain from a single interface
Stars: ✭ 55 (+89.66%)
Mutual labels:  free, smart, contracts, freeton, everscale, evernode
ton-client-js
Everscale Javascript SDK
Stars: ✭ 60 (+106.9%)
Mutual labels:  free, freeton, everscale
TON-SDK
Core Everscale Client library - develop decentralized applications on Everscale blockchain. 14 programming languages supported.
Stars: ✭ 110 (+279.31%)
Mutual labels:  free, freeton, everscale
ethereum-erc20
Fungible token implementation for the Ethereum blockchain.
Stars: ✭ 27 (-6.9%)
Mutual labels:  smart, contracts
sdk-samples
EVER SDK samples
Stars: ✭ 37 (+27.59%)
Mutual labels:  freeton, everscale
GETProtocolCore
🎫 Contract overview and definition of GET Protocol's NFTs
Stars: ✭ 31 (+6.9%)
Mutual labels:  smart, contracts
ethereum-crowdsale
0xcert protocol crowdsale contracts for Ethereum blockchain.
Stars: ✭ 15 (-48.28%)
Mutual labels:  smart, contracts
ap-monorepo
Monorepo containing all packages related to the ACTUS Protocol
Stars: ✭ 15 (-48.28%)
Mutual labels:  smart, contracts
create-hq20-dapp
🌿 This is the TechHQ dapp starter kit All you need in a nut🐚
Stars: ✭ 29 (+0%)
Mutual labels:  smart, contracts
developer-free-saas
🕸️ A curated list Of Free Web-based Tools For Developers
Stars: ✭ 22 (-24.14%)
Mutual labels:  free
netty-in-action-cn
Netty In Action 中文版
Stars: ✭ 1,389 (+4689.66%)
Mutual labels:  free
Resume-Maker
Resume Maker is tool where you can generate your resume for free. It has functionality like dynamic preview, color themes, responsive ,etc.
Stars: ✭ 40 (+37.93%)
Mutual labels:  free
yuuta
ⓦ A clean and free WordPress theme designed to serve as a visual diary
Stars: ✭ 20 (-31.03%)
Mutual labels:  free
Material-Smart-Rating
😍⭐⭐Material Smart Rating App - An Android library that encourages users to rate the app on Google Play.⭐⭐😘
Stars: ✭ 30 (+3.45%)
Mutual labels:  smart
YouTube to m3u
Grab .m3u8 from YouTube live channels and makes .m3u IPTV Playlist from various languages and Events. Tamil / Malayalam / English / Hindi / French / Kids / Sports / Urudu etc.
Stars: ✭ 48 (+65.52%)
Mutual labels:  free
Hypermarket
If you are looking for a stylish and elegant website template for your online store, Hypermarket is the perfect choice for you.
Stars: ✭ 49 (+68.97%)
Mutual labels:  free
SMLReader
ESP8266 based smart meter (SML) to MQTT gateway
Stars: ✭ 170 (+486.21%)
Mutual labels:  smart
ascvd-risk-calculator
SMART ASCVD Risk Calculator
Stars: ✭ 46 (+58.62%)
Mutual labels:  smart
node-esigntech
电子签名、电子合同、电子签章、e签宝
Stars: ✭ 44 (+51.72%)
Mutual labels:  contracts
RawAnime
Anime app to watch animes without any ads for free. Currently broken.. working to fix it with new UI
Stars: ✭ 19 (-34.48%)
Mutual labels:  free

Evernode Simple Emulator (SE)

Local Node with GraphQL API for Everscale DApp development and testing.

Have a question? Get quick help in our channel:

Channel on Telegram

What is Evernode Simple Emulator?

Evernode Simple Emulator (SE) is a local instance of Evernode Platform that developer can run on their machine in one click to test applications locally.

At the moment we publish Evernode SE only as a docker image. But you can access non-docker builds of SE in community repos:

Use-cases

  • Test your applications locally
  • Test your contracts
  • Run SE remotely on a server and test your application on a light local network from different devices.

How to install

Pre-requisites

Attention! Docker daemon must be running.

Install via EVERDEV Development Environment

If you have EVERDEV installed globally on your machine, run this command

$ everdev se start

Checkout other Evernode SE commands accessible from EVERDEV . You can also access these commands from EVERDEV VS Code Extension.

Install via docker command

Run this command

$ docker run -d --name local-node -e USER_AGREEMENT=yes -p80:80 tonlabs/local-node

To check that SE has been installed successfully check its local playground at http://0.0.0.0/graphql. For Windows, use http://127.0.0.1/graphql or http://localhost/graphql.

If you specified another port then add it to the local url http://0.0.0.0:port/graphql

Find out more about GraphQL API.

How to change the blockchain configuration

Evernode SE loads the blockchain configuration (config params) during its start from the configuration file blockchain.conf.json instead of special smart contract, which stores various config params in the real networks.

In order to change some of these params, do the following:

  1. Get blockchain.conf.json file and store it to the host's filesystem accessible by docker. In our example we store it at /home/user/blockchain.conf.json.
  2. Edit the downloaded file, changing parameters you need. If one of the parameters is omitted or renamed, Evernode SE will not start.
  3. Create a new docker container, overriding its configuration file (its path in the image is /ton-node/blockchain.conf.json) with the file from the host's filesystem. Change /home/user/blockchain.conf.json to correct path pointing to the edited blockchain configuration file:
$ docker run -d --name local-node -e USER_AGREEMENT=yes -p80:80 \
     -v /home/user/blockchain.conf.json:/ton-node/blockchain.conf.json \
     tonlabs/local-node

How to work with logs

By default, Evernode SE logs the most of the information to the console, which is accessible by the next command:

$ docker logs local-node

More verbose logging is configured to /ton-node/log/ directory inside the running docker container. By default, there are two files: ton-node.log for all logging and tvm.log for tracing of TVM execution: code, stack, control registers, gas, etc.

Logging configuration is stored in /ton-node/log_cfg.yml file by default, but you can change this path with ton-node-config file in log_path field. In order to change the default logging verbosity of other parameters, you can configure logging in several ways:

  1. In the running container by changing /ton-node/log_cfg.yml file:
$ docker exec -it local-node bash
bash-5.0# vi /ton-node/log_cfg.yml

(in order to exit from VI editor with saving changes press the ESC key, then type :wq and press the ENTER key)

Note: log_cfg.yml file is normally scanned for changes every 30 seconds, so all changes made to this file in running container will be applied only after the scan.

Note: after recreation of the container, all changes made in its files will be lost, so use the second way, if you need to keep them.

  1. Before starting of the container, download and edit a copy of log_cfg.yml file, then mount this file to container's file system in docker run command:
$ docker run -d --name local-node -e USER_AGREEMENT=yes -p80:80 \
     -v /home/user/log_cfg.yml:/ton-node/log_cfg.yml \
     tonlabs/local-node

After starting of Evernode SE, you can edit this file in your file system without restart.

More information about log4rs configuration in the log4rs documentation.

How to connect to Evernode SE Graphql API from SDK

Attention at the moment there are a few differences in SE behaviour comparing with a real TON blockchain . Read about them before you start implemennting. Please note that we plan to upgrade the SE behaviour in the next releases so that it will work the same way as a real network.

To connect to local blockchain from your application specify localhost in SDK Client network config .

Evernode SE components

Ever Live explorer

Ever Live explorer runs on the same IP and port as Evernode SE, just open http://ip_address:port ( e.g. http://127.0.0.1)

How to build docker image locally

In order to build and use Evernode Simple Emulator you need Docker. To build docker image, run from the repository root:

Linux/Mac:

./build.sh

Windows:

build.cmd

SE live control (REST API)

Evernode SE has special REST endpoint /se that allows to perform live control over running Evernode SE instance.

While the Evernode SE is running it has several properties that effect node behaviour:

  • gen_time_delta – each time the node issues new block it sets the block's gen_utime to now() + gen_time_delta. When the node starts it sets the gen_time_delta to 0.

SE control commands (must be sent using POST HTTP method):

  • /se/increase-time?delta=<seconds> – increase gen_time_delta by specified value.

  • /se/reset-time – resets gen_time_delta to 0.

  • /se/time-delta – returns current gen_time_delta value.

Note for SE Developers

This repository contains several useful tools for SE development and debugging. Dev tools resided in dev folder and requires Node.js to execute (so you have to run npm i inside this folder to prepare dev tools).

If you want to debug SE without docker you have to run evernode-se with following additional components:

  • Q Server (required to communicate with ever-sdk):

    • Checkout ton-q-server from official repository.
    • Inside ton-q-server folder run:
      npm i
      
    • Inside evernode-se folder run:
      node path-to-q-server/index --config ./dev/q-server.json
      
  • Arango DB (required to ton-q-server):

    • Download and install from official site.
    • Start Arango DB Server.
    • For the first time or if you want to reset database to initial state run:
      node ./dev/reset-db
      
  • Evernode SE in debug mode

    cargo run --release --bin ton_node_startup -- --workdir ./docker/ton-node --config ton-node.conf.json --blockchain-config blockchain.conf.json
    
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].