github.com/MetalBlockchain/metalgo@v1.11.9/README.md (about) 1 <div align="center"> 2 <img src="resources/logo.png?raw=true"> 3 </div> 4 5 --- 6 7 Node implementation for the [Metal](https://metalblockchain.org) network. At its core Metal is a fork of the [Avalanche](https://avax.network) project and aims to maintain upstream changes. 8 9 ## Installation 10 11 The minimum recommended hardware specification for nodes connected to Mainnet is: 12 13 - CPU: Equivalent of 8 AWS vCPU 14 - RAM: 16 GiB 15 - Storage: 250GiB 16 - OS: Ubuntu 20.04/22.04 or macOS >= 12 17 - Network: Reliable IPv4 or IPv6 network connection, with an open public port. 18 19 If you plan to build MetalGo from source, you will also need the following software: 20 21 - [Go](https://golang.org/doc/install) version >= 1.20.10 22 - [gcc](https://gcc.gnu.org/) 23 - g++ 24 25 ### Building From Source 26 27 #### Clone The Repository 28 29 Clone the MetalGo repository: 30 31 ```sh 32 git clone git@github.com:MetalBlockchain/metalgo.git 33 cd metalgo 34 ``` 35 36 This will clone and checkout the `master` branch. 37 38 #### Building the Metal Executable 39 40 Build Metal using the build script: 41 42 ```sh 43 ./scripts/build.sh 44 ``` 45 46 The Metal binary, named `metalgo`, is in the `build` directory. 47 48 ### Docker Install 49 50 Make sure Docker is installed on the machine - so commands like `docker run` etc. are available. 51 52 Building the docker image of latest metalgo branch can be done by running: 53 54 ```sh 55 ./scripts/build_image.sh 56 ``` 57 58 To check the built image, run: 59 60 ```sh 61 docker image ls 62 ``` 63 64 The image should be tagged as `metalblockchain/metalgo:xxxxxxxx`, where `xxxxxxxx` is the shortened commit of the Metal source it was built from. To run the Metal node, run: 65 66 ```sh 67 docker run -ti -p 9650:9650 -p 9651:9651 metalblockchain/metalgo:xxxxxxxx /metalgo/build/metalgo 68 ``` 69 70 ## Running Metal 71 72 ### Connecting to Mainnet 73 74 To connect to the Metal Mainnet, run: 75 76 ```sh 77 ./build/metalgo 78 ``` 79 80 You should see some pretty ASCII art and log messages. 81 82 You can use `Ctrl+C` to kill the node. 83 84 ### Connecting to Tahoe 85 86 To connect to the Tahoe Testnet, run: 87 88 ```sh 89 ./build/metalgo --network-id=tahoe 90 ``` 91 92 ## Supported Platforms 93 94 MetalGo can run on different platforms, with different support tiers: 95 96 - **Tier 1**: Fully supported by the maintainers, guaranteed to pass all tests including e2e and stress tests. 97 - **Tier 2**: Passes all unit and integration tests but not necessarily e2e tests. 98 - **Tier 3**: Builds but lightly tested (or not), considered _experimental_. 99 - **Not supported**: May not build and not tested, considered _unsafe_. To be supported in the future. 100 101 The following table lists currently supported platforms and their corresponding 102 MetalGo support tiers: 103 104 | Architecture | Operating system | Support tier | 105 | :----------: | :--------------: | :-----------: | 106 | amd64 | Linux | 1 | 107 | arm64 | Linux | 2 | 108 | amd64 | Darwin | 2 | 109 | amd64 | Windows | 3 | 110 | arm | Linux | Not supported | 111 | i386 | Linux | Not supported | 112 | arm64 | Darwin | Not supported | 113 114 To officially support a new platform, one must satisfy the following requirements: 115 116 | MetalGo continuous integration | Tier 1 | Tier 2 | Tier 3 | 117 | ---------------------------------- | :-----: | :-----: | :-----: | 118 | Build passes | ✓ | ✓ | ✓ | 119 | Unit and integration tests pass | ✓ | ✓ | | 120 | End-to-end and stress tests pass | ✓ | | | 121 122 ## Security Bugs 123 124 **We and our community welcome responsible disclosures.** 125 126 We're working on a bug bountry program, in the meantime please submit any bugs or vulnerabilities to bugs@metalblockchain.org