MEMO Storage

Run Testnet 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:
Node data storage directory: ~/memo_user_data as an example.
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

Please post tweet and send email to complete the registration.
  1. 1.
    Please post the tweet using your personal Twitter account and @MemoLabsOrg
I have joined the MEMO testnet.
  1. 2.
    Please send an email to [email protected] to apply for provider registration, also attach the link to Tweet.
Email Example
Network: megrez
Wallet Address: 0x70955480f225b23f60c37c4B6e88C63E3ACD723
Role: provider
Twitter Link:***71090/status/1387**********01381?s=20*
The network must be confirmed before application, usually either test net or product net.
The wallet address is the wallet address generated in the previous step.
Join our discussing with Slack Link:

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=""
docker run --rm -v $MEFS_PATH:/root --entrypoint mefs-provider memoio/mefs-provider:latest config set --key=contract.roleContract --value="0x3c9ebF885d38813632FD129f892E1E0b75371cfA"
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/"

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=2 -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 you have any technical problems, please join our Discord server for help.

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
----------- 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 -----------
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/], 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/]
12D3KooWC2PmhSrU1VexxxxxxxxxtwvQuFZj3vPfjdfebAuJQtc [/ip4/]
12D3KooWR74K1v6naGxxxxxxxxxVS88h4X93bMnquoRiEDdLJTx [/ip4/]
12D3KooWSzzwJ7es1xxxxxxxxxPaqei3TUHnNZDmWTELSA7NJXQ [/ip4/]
12D3KooWG8PjbbN9xxxxxxxxx2oYFtjeQ8XnqvnEqfrB4AiW7eJ [/ip4/]
12D3KooWRjamwQtxxxxxxxxxb44AAXLNy9CB7u1FL2eC5QZekpF [/ip4/]

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