What is BTFS?

BTFS Overview

BitTorrent File System (BTFS) is a next-generation file sharing protocol in the BitTorrent ecosystem. Current mainstream public blockchains mostly focus on computational tasks but lack cost-effective, scalable, and high-performing file storage and sharing solutions. In the meantime, centralized storage systems are troubled by many intrinsic problems:

  • Centralized trust
  • Prone to censorship
  • High maintenance costs
  • Lock-in effect
  • Low fault tolerance

These are exactly what BTFS aims to clear up. Besides, underpinned by BTTC, BTFS enables cross-chain connectivity and multi-channel payments, making itself a more convenient choice. The intgration of BTFS, BitTorrent, and the BTTC network will boost DApp developers' efficiency in serving a wider market.

Architecture

1600

Architecture

The BTFS network is primarily composed of BTFS nodes, including renters and hosts. Renters can upload files by paying WBTT while hosts provide storage in the network for BTT rewards.

Official Contract

We have added some smart contracts to enable node recommendation, payment, airdrops, among other features, mainly including:

  • Factory Contract
  • Vault Logic Contract
  • PriceOracle Contract
  • Online Proof Contract
  • File Metadata Contract

You can view the latest mainnet and testnet addresses of these contracts on BTFS Scan Official Contracts page

Below is the description of these contracts:

Factory Contract

The officially deployed factory contract is used to deploy vault contracts for the BTFS nodes. The factory ensures that every node uses a legitimate and verifiable vault.

Vault Logic Contract

Each node will deploy a vault contract which can be used for paying storage fees (WBTT). The renter pays the host in the form of cheque after uploading files to BTFS. The host can cash out WBTT in the renter’s vault with the cheque received. In order to make the vault contract upgradeable, the factory deploys the vault in the UUPS proxy mode, which requires an implementation contract, namely the logic contract. The vault’s corresponding logic contract can be upgraded by the node owner only.

PriceOracle Contract

PriceOracle contract is used to timely update the storage prices in the entire BTFS network.

Online Proof Contract

This contract stores the Merkle root of the daily online proof data of all nodes, and provides a verification interface to verify the user’s online proof data.

File Metadata Contract

The file metadata contract holds metadata information such as filename, extension and file size for BTFS files.

BTFS Pricing

WBTT Price

Renter Charge(WBTT)Host Reward (WBTT)
125 WBTT (GB/Month)125 WBTT (GB/Month)

Other Token Price

After BTFS 2.3, multi-token (TRX, USDD_t, USDT_t) is supported to pay BTFS cheques, and the
price of other token will be converted to BTT based on the current exchange rate. The specific price can be queried in Price Oracle Contract

📘

Note: When uploading files, renters can set the number of redundant files (excluding original files) to --copy=num. For instance, if num equals 2, it means that three files have been uploaded with one original file and two redundant files.The pricing structure shown above is still under test and is subject to further changes. The team will work to introduce a more advanced pricing structure in the near future.