MEMO Storage
Search
⌃K

Run Megrez Provider Node

Step 1: Environment Deployment

View Docker Installation section to install docker.

Step 2: Set up the node directory

Node home directory:
Using "~/memo_provider" as an example:
MEFS_PATH=~/memo_provider
Node data storage directory: ~/memo_user_data as an example.
MEFS_DATA=~/memo_provider_data
The node home directory is the provider directory and the node storage directory is the provider node data storage directory.

Step 3: Pull image(provider)

docker pull memoio/mefs-provider:latest

Step 4: Initialization(Create new wallet)

docker run --rm -v $MEFS_PATH:/root --entrypoint mefs-provider memoio/mefs-provider:latest init --password=memoriae
Explanation of parameters:
--password: Enter your provider node password, the default is memoriae.
Init: Execute the initialize command, which will generate your wallet address and generate a configuration file.

Step 5: Get wallet address

ddocker run --rm -v $MEFS_PATH:/root --entrypoint mefs-provider memoio/mefs-provider:latest wallet default
Explanation of parameters:
wallet default: Get the default wallet address

Step 6: Top up

Starting node needs both the Memo and cMemo token.
To get the cMemo token, there is one faucet, https://utils.metamemo.one/
This is the MemoChain information.
Memochain information
Chain RCP: https://chain.metamemo.one:8501/
Currency name: CMEMO
Chain ID: 985
Chain browser: https://scan.metamemo.one:8080/
To get the Memo Token, please transfer the Memo Token to the current wallet address from the other address with Memo Token. The provider needs minimum 30 Memo Tokens.

Step 7: Modify the configuration file

docker run --rm -v $MEFS_PATH:/root --entrypoint mefs-provider memoio/mefs-provider:latest config set --key=contract.version --value=3
docker run --rm -v $MEFS_PATH:/root --entrypoint mefs-provider memoio/mefs-provider:latest config set --key=contract.endPoint --value="https://chain.metamemo.one:8501"
docker run --rm -v $MEFS_PATH:/root --entrypoint mefs-provider memoio/mefs-provider:latest config set --key=contract.roleContract --value="0xbd16029A7126C91ED42E9157dc7BADD2B3a81189"
docker run --rm -v $MEFS_PATH:/root --entrypoint mefs-provider memoio/mefs-provider:latest bootstrap clear
docker run --rm -v $MEFS_PATH:/root --entrypoint mefs-provider memoio/mefs-provider:latest bootstrap add "/ip4/183.240.197.189/tcp/14006/p2p/12D3KooWAMpZPwfJopVnp99oqp4zhbjE1G3LFAkcjfBuiyzyCmv7"

Step 8:Start node

docker run -d -p 4001:4001 -v $MEFS_PATH:/root -v $MEFS_DATA:/root/data -e PASSWORD="memoriae" -e PRICE=250000 -e GROUP=3 -e SWARM_PORT=4001 -e DATA_PATH=/root/data --name mefs-provider memoio/mefs-provider:latest
  • Please make sure your user home directory and password are the same as in the previous step.
If there is any deploy issue. Please join the deploy-node discussing with Slack Link:

Checking the running status

Step 1: Enter the container

docker exec -it mefs-provider bash

Step 2: Check provider information

mefs-provider info -a
----------- Version Information -----------
2023-05-16 09:35:49 UTC
2.7.0+api.2+git.c405cb1+2023-03-15.16:15:54CST
----------- Network Information -----------
Network ID: 12D3KooWSLvBa9QB5Qy9SPnrhuNJhCAPzVmyri9gacaUAgfpQ72q
IP: [/ip4/172.xx.xx.xx/tcp/4001]
Type: Private
Declared Address: {12D3KooWSLvBa9QB5Qy9SPnrhuNJhCAPzVmyri9gacaUAgfpQ72q: [/ip4/103.xx.xx.xx/tcp/24001]}
----------- Sync Information -----------
Status: true, Slot: 1530431, Time: 2023-05-16 09:35:30 UTC
Height Synced: 346322, Remote: 346322
Challenge Epoch: 81 2023-05-10 03:31:30 UTC
----------- Role and Account Information -----------
Role ID: 421
Type: Provider
Location: Personal
Wallet: 0xDd8F2bE3C11b1b1A74404141BA8216a5010B1746
Owner: 0xDd8F2bE3C11b1b1A74404141BA8216a5010B1746
Memo Balance: 1.00 Memo
cMemo Balance: 999.90 Gwei
Storage Balance: 0 AttoMemo, Income: 0 AttoMemo
Current Pledge: 30.00 Memo, Reward: 4.05 Memo
Pledge Time: 2023-05-16 02:08:04 UTC
Historical Pledge: 30.00 Memo, Reward: 4.05 Memo
Withdraw Pledge: 0 AttoMemo, Reward: 0 AttoMemo
Pool Pledge: 416.00 Memo, Reward: 7481.01 Memo
Storage Size: 0 byte (0 B), Price: 0 (AttoMemo/Second)
Storage Deposit: 0 AttoMemo
----------- Group Information -----------
EndPoint: https://chain.metamemo.one:8501
Contract Address: 0xbd16029A7126C91ED42E9157dc7BADD2B3a81189
Group ID: 3
Security Level: 3
Size: 2.00 GiB
Price: 2114500000 (AttoMemo/Second)
Keepers: 4, Providers: 4
----------- Store Information ----------
Service Ready: true
Received Size: 0 B
Confirmed Size: 0 B
OnChain Size: 0 B
----------- Local Information -----------
Meta Usage: path /root/.memo-provider, used 781.37 MiB, free 277.71 GiB
Data Usage: path /root/data, used 0 B, free 277.71 GiB

Step 3: Declare

• When participating as a provider node, you need to execute the declare command (declare the public network address) for communication between nodes;
• Get your public network ip+port ready, I will show you below;
• Note: Execute the command in the container;
• The command mefs-provider info can only be executed after the sync information displays as true. Although the synchronization can be successful without doing so, it will not be able to communicate with other nodes.
mefs-provider net declare /ip4/X.X.X.X/tcp/4007
Parameter explanation
X.X.X.X is your public ip address.
Port 4007 is your public network port, and the mapped port is the host's port 4001 (-p 4001: the first port 4001 of the boot parameter).

Check net status

Get local node network information

Command description: Enter command net info to view the network id (cid), ip address and port of the current node.
mefs-provider net info
Network ID 12D3KooWBpPPzk9srHVVU4kkVF1RPJi9nYNgV4e6Yjjd4PGr5qrk, IP [/ip4/10.2.2.61/tcp/18003], Type: Private

Get the network connection information of the node

Command description: Enter command net peers to view the network connection information of the current node.
mefs-provider net peers
12D3KooWMrZTqoU8febMxxxxxxxxxCeqLQy1XCU9QcjP1YWAXVi [/ip4/10.2.2.66/tcp/8003]
12D3KooWC2PmhSrU1VexxxxxxxxxtwvQuFZj3vPfjdfebAuJQtc [/ip4/10.2.2.66/tcp/8004]
12D3KooWR74K1v6naGxxxxxxxxxVS88h4X93bMnquoRiEDdLJTx [/ip4/10.2.2.61/tcp/8003]
12D3KooWSzzwJ7es1xxxxxxxxxPaqei3TUHnNZDmWTELSA7NJXQ [/ip4/10.2.2.62/tcp/18003]
12D3KooWG8PjbbN9xxxxxxxxx2oYFtjeQ8XnqvnEqfrB4AiW7eJ [/ip4/10.2.2.65/tcp/8003]
12D3KooWRjamwQtxxxxxxxxxb44AAXLNy9CB7u1FL2eC5QZekpF [/ip4/1.182.0.0/tcp/24071]
...

Connect to any node

Command description: Enter command net connect to connect to any node; if there is any problem with your node network, please enter command net connect to connect to our public node.
mefs-provider net connect /ip4/10.2.x.x/tcp/8004/p2p/12D3KooWAykMmqu951ziotQiAYTN6SwfvBd1dsejSSak2jdSwryF
COMMON MISTAKES
  1. 1.
    ERROR: not have tx fee on chain
Solution: Check the node, both of the cMemo token balance, and the memo balance. The Memo token balance must meet the minimum amount for node startup.
  1. 2.
    ERROR: execution reversed: can't unpledge during 180d
The node pledge amount needs to be withdrawn 180 days after the last pledge.
  1. 3.
    If the log reports that the meta and state files are missing, you can perform the Recover operation.
mefs-provider recover db --path /home/mcloud/provider2/.memo-provider/meta
mefs-provider recover db --path /home/mcloud/provider2/.memo-provider/state