This article will introduce in detail the use of the command line function of the User-Node of the MEMO system; the user needs to download the binary and execute the program 'mefs-user' to start a Memo User-Node.
Usage
Use the following command to view all commands
mefs-user -h
COMMANDS:
init Initialize a memoriae repo
daemon Run a network-connected Memoriae node.
auth Interact with auth
wallet Interact with wallet
net Interact with net
config Interact with config
state Interact with state manager
role Interact with role manager
info print information of this node
register register an account id for the wallet first, then register a role for it, at last, add it into a group.
version Print version
backup backup export or import
bootstrap bootstrap
recover recover
log Manage logging
settle Interact with settlement chain
lfs Interact with lfs
order Interact with order
gateway memo gateway
restrict Interact with restrict
transfer transfer eth or memo
help, h Shows a list of commands or help for one command
Used to create a wallet in the specified path. If the wallet information already exists in this path, the existing wallet will be used directly without recreating the wallet. Assign the MEFS_PATH environment virable to specify a path for this node.
Usage
mefs-user init -h
Options
--setPass set password using input (default: false)
--password value, --pwd value set password for access secret key (default: "memoriae")
--secretKey value, --sk value secret key
--keyfile value, --kf value absolute path of keyfile
--kpw value password to decrypt keyfile
--help, -h show help (default: false)
The command is used to start and stop an User-Node
Usage
mefs-user daemon start -h
COMMANDS:
start Start a running mefs daemon
stop Stop a running mefs daemon
help, h Shows a list of commands or help for one command
Options
--password value, --pwd value Use the password when registering (default: memoriae)
--api value Set the api address to use (default: /ip4/127.0.0.1/tcp/5001)
--secretKey value, --sk value Use the private key to create the node, if not, please initialize the node
--swarm-port value Set the swarm port to be used by the node (default: 4001)
--group value Set the group the node will enter (default: 0 )
--price value set the price (default: 0, means not modify the price in config.json)
--secureAPI Whether it is a secure API (default: true)
--help, -h View more help
This command implements the related functions of operating the wallet.
Usage
mefs-user wallet -h
COMMANDS:
new create a new wallet address
list list all addrs
default print default wallet address
export export wallet secret key
help, h Shows a list of commands or help for one command
View the bucket/object password for uploading. The enc mode is set when upload object. If enc mode is set to aes1, then bucket password is selected for uploading, on the other hand, if enc mode is set to aes2, then object password is selected for uploading. Right password should be used for downloading encrypted objects.
NAME:
mefs-provider wallet generate - generate decrypt key for lfs object
USAGE:
mefs-provider wallet generate [command options] [wallet address (0x...)] [bucketID] [objectID] [stripeID]
OPTIONS:
--password value, --pwd value (default: "memoriae")
--enc value encryption method (default: "aes2")
--help, -h show help (default: false)
--enc: encrypt mode, aes1 for using bucket password, aes2 for using object password.
Note: If the password is set for a bucket, the objectID and StripeID should be set to 0. If the passwrod is set for an object, the stripeID should be set to 0.
This command is used to modify the configuration file, which takes effect only when the node is not started; if the config is modified while the node is running, the node needs to be restarted to make it take effect;
The path where the configuration file is located: config.json in the root directory of the node which is specified when init the node.
Usage
mefs-user config -h
COMMANDS:
set Set config key
get Get config key
help, h Shows a list of commands or help for one command
The set subcommand is used to set the value of the specified option in the configuration file
Usage
mefs-user config set -h
Options
--key value The key of the config entry (eg "api.address")
--value value The value with which to set the config entry
--help, -h show help (default: false)
Example
Configure the value of contract.endPoint
mefs-user config set --key=contract.endPoint --value="https://testchain.metamemo.one:24180"
This command is used to set the bootstrap node in the configuration file, multiple bootstrap nodes can be added.
Usage
mefs-user bootstrap -h
COMMANDS:
list list bootstrap addresses
add add bootstrap addresses
clear remove all bootstrap addresses
help, h Shows a list of commands or help for one command
--username value, -n value Enter the username to access the gateway (default: memo)
--password value, -p value Enter the password to access the gateway (default: memoriae)
--endpoint value, -e value Enter the gateway's Terminal address (default: 0.0.0.0:5080)
--console value, -c value Enter the console port of the gateway (default: 8080)
--help, -h View more help
Example
mefs-user gateway run -n memo -p memoriae -c 8080
Access port 127.0.0.1:8080 to access the user console;
This command first registers a MEMO system account ID for the wallet address, then registers the wallet account as a specified role (User, Keeper, user), and finally adds the role to the specified group;
Note: daemon startDuring the start-up process of the User node call, the account id, registration role, and joining the group will be automatically generated according to the parameters specified;
Usage
mefs-user register [command options] [role (user/keeper/user)] [group index]
--password value, --pwd value the wallet password, used to restore sk from keystore (default: "memoriae")
--help, -h
Options
keystore--password value, -p value Enter the keystore password to decrypt the private key from the local directory sk(default: memoriae) --help, -h View more help
Example
mefs-user register --pwd=memoriae user 1
Parameter description: pwd is the wallet password, user indicates that the specified role is user, and 1 indicates that this node joins group 1
./mefs-user net -h
COMMANDS:
info get net info
connect connet a peer
peers print peers
findpeer find peers
declare declare public network address
help, h Shows a list of commands or help for one command
mefs-user info -h
USAGE:
mefs-user info command [command options] [arguments...]
COMMANDS:
self print node id
help, h Shows a list of commands or help for one command
Example
mefs-user net info
Network ID 12D3K..., IP [/ip4/172.xx.xx.xx/tcp/4001 /ip4/128.xx.xx.xx/tcp/39525 /ip4/10.xx.xx.xx/tcp/39525], Type: Private
This command interacts with state db to obtain pay and penalty information about this node, or settle current income of this node.
Usage
mefs-provider state -h
COMMANDS:
post list post
pay list pay
withdraw provider income of storing data
help, h Shows a list of commands or help for one command
mefs-provider settle -h
COMMANDS:
setDesc Set description for a node. Especially for providers, if desc is set to 'cloud', they will be selected as dc in buckets preferentially.
withdraw withdraw memo from fs
pledgeAdd add pledge value
pledgeGet get pledge information
pledgeWithdraw move pledge value to fs, then call settle withdraw
pledgeRewardWithdraw move pledge reward value to fs, then call settle withdraw
quitRole change its state to inactive, this op is invocatable and daemon will fail at next start
alterPayee alter current payee to a new one, need to be comfirmed by new payee to finish.
help, h Shows a list of commands or help for one command
Subcommands
Note
About parameter 'amount' in subcommands
Quotes should be used for the amount parameter, and there must be a space between the amount and the unit. The unit is not case-sensitive. It can be Memo, NanoMemo, AttoMemo. The relationship between them is: 1 Memo=10^9 NanoMemo=10 ^ 18 AttoMemo
This command makes the node exit the current role. Wallet address and the balance in it is not effected.
Caution
Role-related functions will no longer be available at this time. However, the wallet balance will not be affected. For providers and keepers, the role pledge amount provided when registering the role can be withdrawn after run quitRole.
mefs-provider order
COMMANDS:
jobList list jobs of all pros
payList list pay infos all pros
get get order info of one provider
detail get detail order seq info of one provider
proList list all pros
help, h Shows a list of commands or help for one command
This command creates, uploads, downloads, and views a collection of containers and files for the user.
Usage
mefs-user lfs
COMMANDS:
createBucket create bucket
listBuckets list buckets
headBucket head bucket info
putObject put object
headObject head object
getObject get object
listObjects list objects
delObject delete object
downloadObject download object using rpc
showStorage show storage info
getPros get pros of bucket
help, h Shows a list of commands or help for one command
--bucket value, --bn value set bucket name
--policy value, --pl value set erasure code (1) or multi-copy policy (2) (default is 1)
--datacount value, --dc value set Number of data blocks (default is 3)
--paritycount value, --pc value Set the number of parity blocks (default is 2)
Example
Bucket name: test, storage policy: erasure code, number of data blocks: 10, number of check blocks 5
OPTIONS: --bucket value, --bn value use bucket name --object value, --on value file name after upload --path value upload file path --etag value select verification method (default: md5) --enc value Select encryption method (default: aes) --help, -h View help
Example
```shell
mefs-user lfs putObject --bn=test --on=1 --path=./index.txt
This command is used to view the specified file status
Usage
mefs-user lfs headObject -h
USAGE:
mefs-user lfs headObject [command options] [arguments...]
OPTIONS:
--bucket value, --bn value bucketName
--object value, --on value objectName
--all show all information (default: false)
--help, -h show help (default: false)
NAME:
mefs-user lfs getObject - get object
USAGE:
mefs-user lfs getObject [command options] [arguments...]
OPTIONS:
--bucket value, --bn value bucketName
--object value, --on value objectName
--etag value, --cid value, --md5 value etag (cid or md5)
--start value start position (default: 0)
--length value read length (default: -1)
--path value stored path of file
--decrypt value decrypt
--userID value userID
--bucketID value bucketID
--objectID value objectID
--help, -h show help (default: false)
Note
--etag option here can be substituted by cid or md5, all of them has the same meaning. If bucket password is used(aes1 is set when putObject), the value of --objectID is ommited.
--decrypt option is the bucket/object password set when putObject.
USAGE:
mefs-user lfs listObjects [command options] [arguments...]
OPTIONS:
--bucket value, --bn value bucket name, priority
--marker value key start from, marker should exist
--prefix value prefix of objects
--delimiter value delimiter to group keys: '/' or ''
--maxKeys value number of objects in return (default: 1000)
--help, -h show help (default: false)
USAGE:
mefs-user lfs downloadObject [command options] [arguments...]
OPTIONS:
--bucket value, --bn value bucketName
--object value, --on value objectName
--cid value cid name
--start value start position (default: 0)
--length value read length (default: -1)
--path value stored path of file
--help, -h show help (default: false)
It is used to repair the db as much as possible when the node starts abnormally. Warning: Do not exit the node abnormally. When you want to exit the node, you should use the daemon stop command to exit normally. Failure to do so may result in db corruption beyond repair
Usage
mefs-user recover db -h
--path specifies the database path to repair --deType the type of repair data (meta or state)
Example
Repair state database
mefs-user recover db --path=/root/.memo-user/state --dbType=state
Export the state database to a file, using the following method:
Usage
mefs-user backup export -h
USAGE:
mefs-user backup export [command options] [arguments...]
OPTIONS:
--path value path to store
--dbType value export dbtype: meta or state (default: "state")
--help, -h show help (default: false)
Example
Export the state database to the current directory
To import a database from a file, use the following method:
Usage
mefs-user backup import -h
USAGE:
mefs-user backup import [command options] [arguments...]
OPTIONS:
--path value path of file import from
--dbType value export dbtype: meta or state (default: "state")
--help, -h show help (default: false)
The user node sets the whitelist function. When creating a bucket, the nodes in the whitelist are given priority.
Usage
mefs-user restrict -h
USAGE:
mefs-user restrict command [command options] [arguments...]
COMMANDS:
list list all accepted users/providers
add add node(s) to restrict list
delete remove node(s) from restrict list
has test whether node(s) in restrict list
set enable/disable restrict
stat restrict stat(enable/disable)
help, h Shows a list of commands or help for one command
Query the value of the token file of the node. The token file is located in the root directory of the node. Ordinary users do not need to pay attention to this value.
Usage
mefs-user auth info -h
USAGE:
mefs-user restrict command [command options] [arguments...]
COMMANDS:
list list all accepted users/providers
add add node(s) to restrict list
delete remove node(s) from restrict list
has test whether node(s) in restrict list
set enable/disable restrict
stat restrict stat(enable/disable)
help, h Shows a list of commands or help for one command
This command is used to set the log level. Different levels display log information of different alarm levels. The default is info level, which only displays normal status information. Ordinary users should use info log level. The debug/warn/error level is used by developers to view detailed error logs. This level will generate a large number of logs and cannot be in debug mode for a long time, otherwise it will take up a lot of disk space. It is not recommended for ordinary users to use.