Git Product home page Git Product logo

liuxiaixuexi / amc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from weareamaze/amc

0.0 0.0 0.0 3.69 MB

A scalable, secure, commercial-grade blockchain that runs on end-user devices. Includes sharding, layering, ZK-EVM and with smart contract support for common scripting languages.

Home Page: https://amazewallet.com/blockchain/

License: GNU General Public License v3.0

JavaScript 0.68% Python 0.01% C 0.18% Go 96.91% Assembly 1.60% Makefile 0.13% Dockerfile 0.03% Solidity 0.45% Starlark 0.03%

amc's Introduction

AmazeChain

AmazeChain(AMC) is an implementation of public blockchain (execution client), on the efficiency frontier, written in Go.

Disclaimer: this software is currently a tech preview. We will do our best to keep it stable and make no breaking changes, but we don't guarantee anything. Things can and will break.

System Requirements

  • For an Full node :  >=200GB  storage space.

SSD or NVMe. Do not recommend HDD.

RAM: >=16GB, 64-bit architecture, Golang version >= 1.19

Build from source code

For building the latest alpha release (this will be suitable for most users just wanting to run a node):

Most Linux systems and macOS

To build AMC from source code, it is necessary to have the new version of Go installed, as AMC is developed using the Go programming language. Instructions for installing Go are available at the Go installation page and necessary bundles can be downloaded from the Go download page. And the repository should be cloned to a local repository. Then, the command make amc configures everything for a temporary build and cleans up afterwards. This method of building only works on UNIX-like operating systems

git clone https://github.com/amazechain/amc.git
cd amc
make amc
./build/bin/amc

Windows

Windows users may run AMC in 3 possible ways:

  • Build executable binaries natively for Windows using Chocolatey package manager
  • Use Docker : see docker-compose.yml
  • Use WSL (Windows Subsystem for Linux) strictly on version 2. Under this option you can build amc just as you would on a regular Linux distribution. You can point your data also to any of the mounted Windows partitions (eg. /mnt/c/[...], /mnt/d/[...] etc) but in such case be advised performance is impacted: this is due to the fact those mount points use DrvFS which is a network file system and, additionally, MDBX locks the db for exclusive access which implies only one process at a time can access data. This has consequences on the running of rpcdaemon which has to be configured as Remote DB even if it is executed on the very same computer. If instead your data is hosted on the native Linux filesystem non limitations apply. Please also note the default WSL2 environment has its own IP address which does not match the one of the network interface of Windows host: take this into account when configuring NAT for port 30303 on your router.

Docker container

Docker allows for building and running AMC via containers. This alleviates the need for installing build dependencies onto the host OS. see docker-compose.yml dockerfile. For convenience we provide the following commands:

make images # build docker images than contain executable AMC binaries
make up # alias for docker-compose up -d && docker-compose logs -f 
make down # alias for docker-compose down && clean docker data
make start #  alias for docker-compose start && docker-compose logs -f 
make stop # alias for docker-compose stop

Executables

The AmazeChain project comes with one wrappers/executables found in the cmd directory.

Command Description
AmazeChain Our main AmazeChain CLI client. It can be used by other processes as a gateway into the AmazeChain network via JSON RPC endpoints exposed on top of HTTP transports. AmazeChain --help for command line options.

AMC ports

Port Protocol Purpose Expose
61015 UDP The port used by discv5. Public
61016 TCP The port used by libp2p. Public
20012 TCP Json rpc/HTTP Public
20013 TCP Json rpc/Websocket Public
20014 TCP Json rpc/HTTP/Websocket JWT Authentication
4000 TCP BlockChain Explorer Public
6060 TCP Metrics Private
6060 TCP Pprof Private

License

The AmazeChain library is licensed under the GNU General Public License v3.0.

amc's People

Contributors

jackmeng1985 avatar yyjia avatar lucyzhang314 avatar zhappiness0427 avatar stsea avatar lunar-sakurane avatar coyuer2023 avatar hhhhh2023 avatar info202305 avatar irregularshooter avatar quantarecorder avatar test202355 avatar unarimit avatar jingboguan avatar goblin620 avatar lemon356 avatar liuxiaixuexi avatar wjh-x avatar yuanyaruyyr avatar zhcandroid avatar

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.