Giter VIP home page Giter VIP logo

eosio-explorer's Introduction

EOSIO Labs™: EOSIO Explorer

A full web application to communicate with EOSIO blockchain in a local development environment built using React.

EOSIO Labs badge npm npm PRs welcome badge

Table of Contents

Overview

The EOSIO Labs™: EOSIO Explorer is a full web application that allows developers to bootstrap their smart contract development by providing them the ability to communicate with the EOSIO blockchain in a local development environment. The goal of this application is to provide app developers for the EOSIO blockchain (consisting of smart contract developers and front-end developers) a quick and easy way to create the local development environment required to make and test such applications on the EOSIO blockchain.

The application provides developers the ability to review changes and updates that occur within the blockchain based on their own work, and has the capacity to allow teams of developers to work on the same instance of the blockchain. This is to add an extra layer of ease for application development especially as a way to allow both smart contract developers and front-end developers to work together more closely. For example, front-end developers can test by connecting their applications to the blockchain instantiated by this tool, and perform tests which smart contract developers can review instantly on the tool to determine if behavior is expected or not.

The goal of this application is to enhance the user experience when developing EOSIO-based blockchain applications while at the same time lowering the barrier to entry for newcomers to EOSIO-based blockchain development.

About EOSIO Labs

EOSIO Labs repositories are experimental. Developers in the community are encouraged to use EOSIO Labs repositories as the basis for code and concepts to incorporate into their applications. Community members are also welcome to contribute and further develop these repositories. Since these repositories are not supported by Block.one, we may not provide responses to issue reports, pull requests, updates to functionality, or other requests from the community, and we encourage the community to take responsibility for these.

⚠️ Important ⚠️

The EOSIO Labs™: EOSIO Explorer is designed specifically to be a tool for local development. Therefore, numerous things must be kept in mind:

  1. Wallet keys used for this tool may be compromised if your machine is not properly secure. Keys for live wallets should not be used in EOSIO Explorer as the tool does not include appropriate security measures.
  2. The tool is not compatible with the EOSIO Mainnet or other public EOSIO-based blockchains
  3. Tools that do not match the versions listed in required tools or OSes not listed in the platform support list may cause issues

Features

  1. ⚡ Smart contract deployment to a connected EOSIO Blockchain
  2. 🔑 Ability to create accounts with active and owner permissions on a locally created EOSIO Blockchain (:closed_lock_with_key: Private keys stored locally)
  3. :octocat: Ability to push actions from a deployed smart contract to a connected EOSIO Blockchain
  4. 🔭 Automatically updating lists for blocks produced, transactions performed, actions pushed, etc.
  5. 😎 Search for and review accounts and deployed smart contracts on the connected EOSIO Blockchain
  6. 🔌 Simple way to connect to a different nodeos instance

Main EOSIO Dependencies

The tool uses the following:

  1. eosio v1.8.6
  2. eosio.cdt v1.6.3

Platform Support

  • Amazon Linux 2
  • CentOS 7
  • Ubuntu 16.04
  • Ubuntu 18.04
  • MacOS 10.14 (Mojave)

Required Tools

  • Yarn with support at ^1.15.2 (latest stable)
  • Docker with support at Docker Engine 18.09.2 (latest stable)
  • Node.JS with support at ^10.15.3 LTS (latest stable)

⚠️ - When using Docker for this tool, we require a minimum resource of 4 CPU, 8 GB memory allocation.

⚠️ - Currently, the project supports react-scripts v2.x.x but not react-scripts v3.x.x in your global dependency (check yarn global list).

Warning for Future Releases

Applies to releases > 0.3.1:

Originally, creating a local instance of nodeos using this tool would allow you to use an eosio account whose permission credentials are stored locally on the front-end. Specifically, it is hard-coded and could not be changed. However, moving forward, this eosio account will now be initialized in the database. If you connect to a nodeos instance using an older version of this tool, you will no longer be able to access the default eosio permissions for that node if you are using future versions of this tool.

For users or developers using older versions of this tool, please update as soon as possible and re-initialize your blockchain as to provide other users with the ability to use these permissions. Furthermore, you can choose to change the public keys of these eosio permissions and treat them as if they were normal accounts. Keep in mind that doing this means you and any other users are now responsible for the new private keys, the tool will not keep track of the private keys for you if you change your connection.

Installation

For Users

yarn global add eosio-explorer

This will create a globally installed instance of the tool which you can run anywhere.

⚠️ - yarn will install global packages in a directory that may not be in your executable PATH. This may apply to certain OSes such as Ubuntu. In this case, you need to add the output of yarn global bin to your PATH such as in ~/.bash_profile.

If you wish to install the tool without global, then you can do the following instead:

git clone https://github.com/EOSIO/eosio-explorer.git
yarn build
yarn install

After installing, you can do eosio-explorer -v or yarn eosio-explorer -v to check if the installation worked. If it worked, you should get the current version of the tool.

For Contributors

See: Development

OS Platform Specific

⚠️ - In summary, for terminal OSes, headless Chrome (chrome) must be available, otherwise you cannot start the GUI.

If you want to start the tool without the GUI to simply create an EOSIO blockchain environment (nodeos and PostgresDB setup), please pass the --server-mode flag to the init or start commands. This may be useful for users who run terminal OSes and want to supply their development team with a development environment quickly and painlessly.

Ubuntu 18.04 / Ubuntu 16.04

If you want to start the tool with the bundled UI, you will need to make sure your machine or server can open headless Chrome in a sandbox.

Amazon Linux 2 (AMI)

Out of the box, Amazon Linux will use an outdated version of Docker which this application currently does not support.

In order to install the tool properly, you will need to manually install the latest stable version of Docker using binaries. You can find the relevant binaries here.

Finally, this requires the instance to be able to run or open headless Chrome in a sandbox.

CentOS 7

The tool requires starting a sandbox for headless Chrome, which can get complicated when attempting to run the tool on a variety of instances that don't specifically open a browser.

In CentOS specifically, SELinux impedes this process (original issue).

You will need to create an exception within SELinux. Setting the following boolean will fix this particular issue:

setsebool -P unconfined_chrome_sandbox_transition 0

Alternatively, though not recommended, you can disable SELinux entirely.

Usage

After installation of the application, depending on how you have installed the tool, can be run in different ways.

Installed with global                : eosio-explorer <command>
Installed via cloning the repository : yarn eosio-explorer <command>

Run the tool with the specified command

Commands:
  -v                Prints out the current version of the tool

  -h or --help      Prints out the current list of available commands

  init              Initialize the tool by copying initial config, setting up
                    all Docker containers, etc.

                    Available flag(s):
                    -s / --sample-data - Starts the tool with pre-existing sample accounts and
                                         smart contracts
                    --server-mode      - Starts the blockchain environment for the tool without opening
                                         the web application
                    --set-mode         - Set mode can take the value 1, 2 or 3(e.g.: --set-mode=1), 
                                         1- Connect to default Nodeos instance provided by the tool
                                         2- Connect to the endpoint passed using 'nodeos-endpoint=<endpoint>' argument
                                         3- Connect to the endpoint mentioned in config file
                    --nodeos-endpoint  - Starts the tool by connecting to the Nodeos instance endpoint(RPC endpoint) passed, 
                                         this argument is valid only when --set-mode=2

                    Below flag(s) only work in development mode by git cloning the repo:
                    -dev / --develop - Starts the tool in development mode
                    -b / --build - Force building the gui of the tool

  start             Start the tool, assumes the dependencies and Docker images are already prepared (using init command)

                    Available flag(s):
                    --server-mode      - Starts the blockchain environment for the tool without
                                         opening the web application
                    --clear-browser-storage - Starts the tool with clearing browser local storage
                    -del / --delete    - Removes existing Docker containers and clear the browser local storage

                    Below flag(s) only work in development mode by git cloning the repo:
                    -dev / --develop   - Starts the tool in development mode
                    -b / --build       - Force building the gui of the tool
                    --no-timestamp     - Builds gui without adding env LASTTIMESTAMP.
                                         Should only used by developer right before making a release

  stop_dockers      Stops any currently running Docker containers gracefully

  remove_dockers    Remove any currently present Docker containers

You can also add the -h flag to any of the commands listed above to view the available flags for each command within the terminal.

Starting the Tool

There are ways to start the tool depending on what you need or want to accomplish:

eosio-explorer init
eosio-explorer start 
eosio-explorer 

Running eosio-explorer without any command is equivalent to running eosio-explorer start

This section will detail the specific differences between the two commands and help you decide when you should use one or the other.

init

The init command will perform the following operations when starting the tool:

  1. Create a config file which stores the Nodeos instance endpoint based on user selction.
  2. Setting up and copying the initial configurations for the tool
  3. Checking and building Docker images if necessary
  4. Check if package dependencies need to be installed. This step won't execute if you have installed this tool with yarn global.
  5. Clear the local storage, if it needs to be cleared. Otherwise, just provide the initial state
  6. Forcefully remove any existing Docker containers and volumes before starting new ones
  7. Operations indicated by command flags/options

Therefore, you would want to use this command under these general circumstances:

  1. You just installed the tool
  2. You want switch to different blockchain using the instance endpoint
  3. You want to re-initialize the tool after installing an update (rebuilding Docker images, etc.)
  4. You want to completely wipe your blockchain data, start from scratch.
  5. You want to re-initialize the tool after changing some configuration data

start

The start command will just do the following:

  1. Try to resume stopped Docker containers. If no Docker containers exist, new ones will be started.
  2. Operations indicated by command flags/options

Therefore, you would want to use this command under these general circumstances:

  1. You have already run init command to initialize the tool
  2. You want to start the tool normally without changing the endpoint (connects to the endpoint provided in previous run)
  3. You have stopped Docker containers and want to resume a locally created blockchain

Ideally, for each update installed, you want to run init command once, and then just use start thereafter.

Using the start command assumes you have already built and installed all necessary dependencies.

Stopping the Tool

⚠️ - Proper way to pause/stop the docker containers is to use the below command, if you don't stop the docker containers properly then you may lose the data on the blockchain. Also, use this command and stop docker containers before shutting down the system to save data.

eosio-explorer stop_dockers

Then use eosio-explorer start to resume/restart the docker containers.

Initializing with Sample Data

If you want to initialize a new blockchain with sample accounts and data, you can do the following:

eosio-explorer init --sample-data 

Note while connecting to external nodeos endpoint

If you choose to connect to the nodeos instance other than default instance provided by the tool:

  • Make sure the State History Plugin(SHiP) is enabled
  • SHiP plugin port should be defaulted to 8080
  • The hostname of nodeos endpoint and SHiP plugin websocket endpoint should be same. The tool extracts the hostname from the nodeos endpoint passed and establish connection with the same host name with 8080 port.
    eg: If the nodeos endpoint is http://localhost:8888 the SHiP plugin websocket endpoint is constructed as localhost:8080
  • Also, if you try to connect to the nodeos instance running locally in your machine other than the default instance provided by the tool, please use your machine IP instead of localhost in the endpoint
  • Changing the connection will clear your locally stored private keys so please back them up in advance if you need to.

Modes

Development mode

Sacrifices some performance but enables hot code reloading, allowing you to work on contributing to the project without rebuilding. This will not run as a background process. This mode is ONLY to be used for developing the core functionality of EOSIO Explorer not for development of dApps. Unless you don't plan to modify or add new functionality to the tool, the production mode is supposed to be used.

Production mode

serves a pre-rendered, pre-loaded version of the tool for speed and performance, and is for users of the tool.

Using pm2

The tool, in production mode, will run persistently in the background using pm2, meaning that you can choose to keep it running indefinitely. If you want to close the tool, you will need to kill the process which is listening on the port you specified in the configuration. By default, the production mode port is 5111. You can use utilities like netstat and lsof to check this.

If you want, you can globally install pm2 (yarn global add pm2 or npm install -g pm2) to make managing this process easier, so you can run commands like pm2 status to check.

The quickest way to eliminate all processes on pm2 is to use pm2 kill.

Otherwise, you can check the list of processes with pm2 list (for example, you are running other Node processes using pm2), then use pm2 delete <id> to delete the specific processes you want. You would need to use the process ID of pm2, not the process ID of your OS/machine.

The processes will be called eosio compiler for the compiler service and eosio explorer for the main tool, when being served.

Links to Documentation

Analytics

In order to help us understand developer usage better, the application will connect to Google Analytics to provide us basic info on country, browser, OS and ISP.”

Contributing

Interested in contributing? That's awesome! Please view the following links for more information on contributing to the project.

Contribution Guidelines

License

MIT

Important

See LICENSE for copyright and license terms. Block.one makes its contribution on a voluntary basis as a member of the EOSIO community and is not responsible for ensuring the overall performance of the software or any related applications. We make no representation, warranty, guarantee or undertaking in respect of the software or any related documentation, whether expressed or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall we be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or documentation or the use or other dealings in the software or documentation. Any test results or performance figures are indicative and will not reflect performance under all conditions. Any reference to any third party or third-party product, service or other resource is not an endorsement or recommendation by Block.one. We are not responsible, and disclaim any and all responsibility and liability, for your use of or reliance on any of these resources. Third-party resources may be updated, changed or terminated at any time, so the information here may be out of date or inaccurate. Any person using or offering this software in connection with providing software, goods or services to third parties shall advise such third parties of these license terms, disclaimers and exclusions of liability. Block.one, EOSIO, EOSIO Labs, EOS, the heptahedron and associated logos are trademarks of Block.one.

Wallets and related components are complex software that require the highest levels of security. If incorrectly built or used, they may compromise users’ private keys and digital assets. Wallet applications and related components should undergo thorough security evaluations before being used. Only experienced developers should work with this software.

eosio-explorer's People

Contributors

christiandunst avatar jcalfee avatar jcardenas9x avatar josephjguerra avatar matharuajay avatar mjk90 avatar terrylks avatar varshajnagaraja avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eosio-explorer's Issues

Using eosjs-ecc, should migrate to eosjs v21 methodology

With the near release of eosjs v21, a push from eosjs-ecc to elliptic has been decided. This repository utilizes eosjs-ecc and should migrate to the new methodology using eosjs v21 and elliptic.

Before the release of eosjs v21, the eosjs edge release on npm will have the necessary functionality as well as the elliptic npm package to create a branch for this repo ready to release after eosjs v21.

Please see related PRs for example migrations:
EOSIO/eosio-reference-chrome-extension-authenticator-app#37
EOSIO/ual-scatter#56
EOSIO/eosjs-ledger-signature-provider#32

"Could not obtain client encoding: not connected."

Hello!

I hope this is the right place to post this question, since I have looked around but couldn't find an answer.

I am trying to connect the tool to a nodeos endpoint, but I keep getting the following error in the ship docker:

info 2021-02-09T15:37:46.766 fill-pg fill_pg_plugin.cpp:777 receive_deltas ] block 135569006 resource_usage 30000 of 37817 bulk=false
error 2021-02-09T15:38:08.812 fill-pg state_history_connecti:157 catch_and_close ] Could not obtain client encoding: not connected.
info 2021-02-09T15:38:08.815 fill-pg state_history_connecti:182 close ] closing state-history socket

Does anyone have any idea of how I could go about fixing this?

Thank you in advance for your time!

Cannot deploy contract with a header file.

I am unable to deploy a contract which has an added header file in this.

An example of this is depoying the eosio.token contract whose .cpp file requires a .hpp file (#include <eosio.token/eosio.token.hpp>)

Any way around this?

Run EOSIO Explorer as service

Hi,
is it possible to to run eosio explorer as a service on a server? I have my own Nodeos cluster and MongoDB and would like to run the gui as a application in a webserver (not as gui on the client).
Is that something on the roadmap?

Many thanks,
bert

Installed globally, Permission denied

$ eosio-explorer

/home/steve/eosio_explorer_config.json does not exist, calling init..

=========================
Welcome to EOSIO Explorer

Please select one of the following options by typing 1 or 2:

  1. Start the tool by connecting to default Nodeos and MongoDB endpoints.
  2. Start the tool by connecting to existing Nodeos and MongoDB endpoints.
    1
    Starting tool with default endpoints...
    ===============================
    INITIALISING CONFIG IN PACKAGES
    ===============================
    cp: cannot create regular file '/usr/lib/node_modules/eosio-explorer/config.file.local': Permission denied

EOSIO-Explorer local nodeos connection stuck on check-ship

When I try to run eosio-explorer to connect to my local nodeos instance, all console output appears correct to me, but the launched web app is stuck showing a blank white screen on the check_ship endpoint.

image

My setup

  • Running local nodeos instance on 127.0.0.1:8888, ship on 8080
  • Nodeos parameters:
    • --plugin eosio::producer_plugin
    • --plugin eosio::producer_api_plugin
    • --plugin eosio::chain_plugin
    • --plugin eosio::chain_api_plugin
    • --plugin eosio::http_plugin
    • --plugin eosio::state_history_plugin
    • --contracts-console
    • --disable-replay-opts
    • --access-control-allow-origin='*'
    • --http-validate-host=false
    • --verbose-http-errors
    • --state-history-dir ~/data_nodeos/shpdata
    • --trace-history
    • --chain-state-history

I ran the following command

$ eosio-explorer init --set-mode=2 --nodeos-endpoint=127.0.0.1:8888 && eosio-explorer

And got the following console output

warning ../../package.json: No license field

Welcome to EOSIO Explorer

Connecting to 127.0.0.1:8888

VALIDATING NODE ENDPOINT

SUCCESS

CHECKING THE EOS VERSION

version v2.2.0-rc1
Compatible with tool

INITIALISING CONFIG IN PACKAGES

Copying initial config done.

BUILDING EOSIO DOCKER

start building eosio docker
[+] Building 0.1s (14/14) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 583B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/ubuntu:18.04 0.0s
=> [1/9] FROM docker.io/library/ubuntu:18.04 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 23.58kB 0.0s
=> CACHED [2/9] RUN apt-get update && apt-get install -y wget sudo curl 0.0s
=> CACHED [3/9] RUN wget https://github.com/EOSIO/eosio.cdt/releases/download/v1.6.3/eosio.cdt_1.6.3-1-ubuntu-18.04_amd64. 0.0s
=> CACHED [4/9] RUN apt-get update && sudo apt install -y ./eosio.cdt_1.6.3-1-ubuntu-18.04_amd64.deb 0.0s
=> CACHED [5/9] RUN wget https://github.com/EOSIO/eos/releases/download/v1.8.6/eosio_1.8.6-1-ubuntu-18.04_amd64.deb 0.0s
=> CACHED [6/9] RUN sudo apt install -y ./eosio_1.8.6-1-ubuntu-18.04_amd64.deb 0.0s
=> CACHED [7/9] WORKDIR /opt/eosio/bin/ 0.0s
=> CACHED [8/9] COPY ./scripts /opt/eosio/bin/scripts 0.0s
=> CACHED [9/9] COPY ./contracts /opt/eosio/bin/contracts 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:48fcc2aa14ff1d351bd1f76825ef675518096a583a9b7b6b2d09dd0b6d8a622f 0.0s
=> => naming to docker.io/library/eosio_nodeos:eos1.8.6-dockerfile1.0 0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
docker image already exists, skip building
cleaning up data remnants
remove the volume if the container doesn't exists
No container running
Re-initializing block log folder
done

BUILDING EOSIO_CDT DOCKER USED BY COMPILER SERVICE

starting eosio-cdt docker setup
[+] Building 0.1s (12/12) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 420B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/ubuntu:18.04 0.0s
=> [1/7] FROM docker.io/library/ubuntu:18.04 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 1.10kB 0.0s
=> CACHED [2/7] RUN apt-get update && apt-get install -y wget sudo curl 0.0s
=> CACHED [3/7] RUN wget https://github.com/EOSIO/eosio.cdt/releases/download/v1.6.3/eosio.cdt_1.6.3-1-ubuntu-18.04_amd64. 0.0s
=> CACHED [4/7] RUN apt-get update && sudo apt install -y ./eosio.cdt_1.6.3-1-ubuntu-18.04_amd64.deb 0.0s
=> CACHED [5/7] WORKDIR /opt/eosio/bin/ 0.0s
=> CACHED [6/7] COPY ./scripts /opt/eosio/bin/scripts 0.0s
=> CACHED [7/7] COPY ./contracts /opt/eosio/bin/contracts 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:3864e2882d6654ffd772dff45824bf14b47cc4fb17c669751c4a85cb346637ca 0.0s
=> => naming to docker.io/library/eosio_nodeos_cdt:1.6.3-dockerfile1.0 0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
docker image already exists, skip building
done

PULLING FILL-PG DOCKER IMAGE

start pulling fill-pg docker image
Pulling docker image eosio/eosio-explorer version , this may take some time...
fill-pg-1.2: Pulling from eosio/eosio-explorer
Digest: sha256:f962c3facd92c8f5e2524de6ce8092a112251ca1281131b4c55bec917d878216
Status: Image is up to date for eosio/eosio-explorer:fill-pg-1.2
docker.io/eosio/eosio-explorer:fill-pg-1.2
cleaning up data remnants
remove the volume if the container doesn't exists
No container running
warning ../../package.json: No license field

CLEANING EXISTING EOSIO DOCKER

waiting for docker to stop
done

CLEANING EXISTING CDT DOCKER

done

CLEANING STATE HISTORY PLUGIN DOCKER

waiting for docker to stop
eosio_nodeos_ship
eosio_postgres_container
eosio_postgres_volume
done

Creating config files to store endpoints

done
Path: /Users/james/eosio_explorer_config.json
{"NodeEndpoint":"127.0.0.1:8888"}

warning ../../package.json: No license field

/Users/james/eosio_explorer_config.json exists
Connecting to 127.0.0.1:8888

STARTING STATE HISTORY PLUGIN FILLER DOCKER

eosio_postgres_volume
running postgresql docker container
c18374dd8c9fc5bceb743b21fe099bae991b0d8be264e14750579ea59cce65f8
running state history plugin docker container
7741f56d99bef11b60377ccfebdb095501c6319a4cf67fc754f13317bd8cc6fd
warning ../../package.json: No license field

/Users/james/eosio_explorer_config.json exists

STARTING CDT DOCKER

starting docker container from the eosio_nodeos_cdt:1.6.3-dockerfile1.0 image
2dab41a46d22576a98079446bc4f3c30bbfab85e65c841d7b8c58be49c8e1e50
done

STARTING APP AND COMPILER SERVICE

yarn run v1.22.4
warning ../../package.json: No license field
$ CLEARBROWSERSTORAGE=true node pm2.js /Users/james/.config/yarn/global/node_modules/@eosio-toppings/api-eosio-compiler
starting app and compiler using pm2
eosio compiler ---- online
eosio explorer ---- online

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.