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                       | &check; | &check; | &check; |
   119  | Unit and integration tests pass    | &check; | &check; |         |
   120  | End-to-end and stress tests pass   | &check; |         |         |
   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