Skip to content

Grouloo/muffinVM

Repository files navigation

muffinVM

Introduction

muffinVM is a world-state computer project.

It is used to manage Muffin Network, which provides decentralized services such as a payment system, JS code execution, and soon a file system.

Read the witepaper

Technical documentation

API and CLI

How to write a contract

Install

Clone the repository

To run your own node on Muffin Network, you'll have to install muffinVM first.

git clone https://github.com/Grouloo/muffinVM.git

Set up your profile (optionnal)

If you want to become a validator on MMuffin Network,you'll have to configure a profile.

Go to ./muffinVM and edit the file me.json with the following content:

{
  "privateKey": [YOUR PRIVATE KEY],
  "address": [YOUR ADDRESS]
}

The private key is needed to sign blocks when validating. It is needed, but if you're not comfortable with that way of doing this, feel free to submit a pull request.

Muffin Network is fully compatible with Ethereum addresses, so if you already have one, you can use it on Muffin.

Compiling and launching

First, download / update the dependancies

yarn

Then, launch muffinVM with the following command:

yarn start [--storage PATH_TO_YOUR_STORAGE_FOLDER] [--port PORT_NUMBER] [--anonymous]

Launching a validating node and an anonymous node

We want to run a validator node, and a node that we will use as an API which will not do any validation.

To launch the validating node, open a terminal and do:

cd ./muffinVM
yarn start

To run the anonymous node, the one that will not do any validation, we will have to use the --anonymous flag and to specify another port. This flag will tell our node to run without using the content of me.json.

muffinVM uses the 8545 port by default. You cannot launch 2 instances of muffinVM on the same port. We will have to change the used port with the --port option.

We will also have to use another storage folder. While it is theorically possible to run 2 nodes using the same storage, it isn't something safe to do. We can change the storage path with the --storage option.

In another terminal:

cd ./muffinVM
yarn start --anonymous --port 3000