BTFS Storage Rental

Storage the upload process

If a BTFS node is created locally, then file uploading can be done via command line. It includes several steps such as configuring, adding files, uploading files to the network, etc., as follows.

  1. configuring the current node for the renter role.
  2. topping up to the vault address.
  3. uploading files to the local BTFS node.
  4. uploading files in the local node to the BTFS network, returning the sessionID.
  5. check the current status by sessionID.

1. Renter settings:

Enter the following command for the storage-client setup.

//modify Configuration
$ vim config
...
// Under "Experimental", the StorageClientEnabled setting is set to true
"StorageClientEnabled": false,
...

//Synchronize host node to local node
$ btfs storage hosts sync

//Check host status
$ btfs storage hosts info | jq

2. Top up to the vault address

In the node startup log, find the vault address as follows.
self vault: 0x47813456f0951493347010a4f27aafbdcca61025
You can top up to the vault address through your own wallet, before you can upload the file.
Top-up with WBTT.

*How to get WBTT?
Open the metaMask wallet, switch to the BTTC network(Related parameters reference address https://doc.bt.io/v1/doc/network.html#mainnet-chainid-0xc9-decimal-199), click on the SEND button, three points need to be noted.
1 - First you should ensure your wallet have enough BTT you want to convert WBTT.
2 - You need to fill in the contract address of WBTT,0x23181F21DEa5936e24163FFABa4Ea3B316B57f3C.
3 - Amount: you need to fill in how much WBTT you want to convert, BTT and WBTT is a 1:1 exchange relationship

3. BTFS Adding Files

Add a file with the btfs add file command.

$ btfs add <file-name>

// Output
added QmdBX8seLx4TGHwr8Tu9L2QSByaJ9bbFUpxFvKAYyxCmnb <file-name>
 163 B / 163 B [=======================================================] 100.00%



$ btfs add -r <dir-name>

// Output
added QmdBX8seLx4TGHwr8Tu9L2QSByaJ9bbFUpxFvKAYyxCmnb <dir-name/file-name>
added QmdBX8seLx4TGHwr8Tu9L2QSByaJ9bbFUpxFvKAYyxCmnb <dir-name/file-name>
......
added QmdBX8seLx4TGHwr8Tu9L2QSByaJ9bbFUpxFvKAYyxCmnb <dir-name>
 163 B / 163 B [=======================================================] 100.00%

4. BTFS Upload files to BTFS network

A Direct upload method, default copy=0

$ btfs storage upload <file-hash>

B Add parameters to set multiple copies

$ btfs storage upload <file-hash> --copy=num

C Add parameters to set multiple tokens

$ btfs storage upload <file-hash> --token-type=WBTT

Storage parameter options:

OptionDescriptionFlag
Leaf HashFlag to specify given hash(es) is leaf hash(es). Default: False[--leaf-hash | -l]
Host Select ModeBased on mode to select the host and upload automatically.[--host-select-mode= | -m]
Host SelectionUse only these selected hosts in order on 'custom' mode. Use ',' as a delimiter.[--host-selection= | -s]
Host Search LocalEnable host search under all domains 0.0.0.0 (useful for local test). Default: True[--host-search-local=false]
Storage LengthThe length in Days to store the file.
Default: 30 days
[--storage-length= | --len]
Copy NumSet num copy to upload. If set --copy=1, will be 1(origin) + 1(copy) =2 to upload.[--copy=num]
Token TypeSet token type to upload. such as WBTT/TRX/USDD/USDT.[--token-type=WBTT]

Uploading to the BTFS network, for example.

// Store the upload file hash and set the time to 35 days
$ btfs storage upload QmdBX8seLx4TGHwr8Tu9L2QSByaJ9bbFUpxFvKAYyxCf7b --storage-length=35
{"ID":"15f635e0-3171-445f-b089-95c04ecb3d83"}

5. Example of viewing upload status.

// You can follow the jq tool to help view the json result output
$ btfs storage upload <session-id> status | jq '.Status'

6. Other

Downloading files stored in BTFS

// get file
$ btfs get <file-hash>


// get dir(files)
$ btfs get <dir-hash>

Deleting files stored in BTFS

$ btfs rm <file-hash>