Territory Operation
Last updated
Last updated
CESS testnet has been released. If users want to upload files, they need to purchase space and an authorized gateway first. This guide is for developers who want to interact directly with the chain through a blockchain browser to purchase territory, expand territory, and other operations.
To allow users to use the storage space of the CESS network more flexibly, we have decided to give the storage space the characteristics of NFTs, making it unique and tradable. This is intended to activate the network. We have thus introduced the concept of "CESS territory."
"Territory" replaces the previous concept of storage space, converting user-held space into user-held territory. The files uploaded by users will be uploaded to the territory they own.
Each user can have an unlimited number of "territories." Users can name each of their territories. At the same time, each territory has a unique token value for identification. Users can trade or transfer their territories using the territory token value. Since this is an expansion of the previous version of storage space, each territory will also have an expiration time. Users can renew and expand their existing territories through renewal or expansion.
The guide will explain how to purchase territory, expand territory, renew territory, and some of the details.
After connecting to rpc node, the browser loads the blockchain information. We select Developer - Extrinsics as shown in the image below.
Select the StorageHandler
module and select the mintTerritory
.
Click Sign and Submit
to confirm the signature, Then wait for the browser to call the wallet to sign. After entering your customized password, click Sign the transaction
to sign the transaction.
Wait for the transaction to be packaged and then broadcast the confirmation. If you see the content shown in Figure 2 below, it means that the transaction you submitted has been successfully executed.
Select Developer -> Extrinsics -> StorageHandler
module, then select the renewalTerritory
, after filling in the parameters territoryName
and days
correctly, submit the transaction.
The subsequent operations are the same as purchasing space.
Select Developer -> Extrinsics -> StorageHandler
module, then select the expandingTerritory
, after filling in the parameters territoryName
and gibCount
correctly, submit the transaction.
The subsequent operations are the same as purchasing space.
Select Developer -> Chain state -> StorageHandler
module, then select the territory
, after filling in the parameters AccountID32
and Bytes
correctly, click "+" to query. View the returned results.
token
: is the unique identifier of the territory.
totalSpace
: Indicates the total space currently held by the user, in bytes.
usedSpace
: Indicates the space currently used by the user, in bytes.
lockedSpace
: Indicates the space used by the file currently being uploaded by the user, in bytes.
remainingSpace
: Indicates the remaining space available to the user, in bytes.
start
: Block height when space is first purchased.
deadline
: Block height at expiration.
state
: The status of the space currently held by the user.
To purchase territory for others, an arbitrary account must first create a purchase order. Select Developer -> Extrinsics -> StorageHandler
module, then select the createOrder
transaction. This transaction can be executed by any account, but a certain fee must be paid, and it can be used not only for purchasing but also for renewing and expanding. In our example, we will take purchasing as an example.
targetAcc
: The account to which the purchased territory will be assigned.
territoryName
: The name of the territory for purchase/renewal/expansion.
orderType
: The type of this order is to choose for purchase/renewal/expansion.
gibCount
: The size of the territory for purchase/expansion.
days
: The validity period of the territory for purchase/renewal.
expired
(0-99): The number of blocks until the order expires. For example, if you enter 10, the order will expire after 10 blocks. Each block takes approximately 6 seconds to be mined, meaning the order will expire in 60 seconds.
After submitting the create order transaction, the event will return an orderId, which is the unique identifier of the order. To pay for this order, the orderId will be needed.
As shown in the figure, we obtained an order id of 0xc49692668b58cc8e826e289e90e100542afe520fffe112dc76e18cb26e3573d3
, and next we need to pay for this order.
Select Developer -> Extrinsics -> StorageHandler
module, then select the execOrder
transaction, and fill in the corresponding orderId. This step will deduct the tokens from the transaction account according to the order content and execute the order.
After the transaction is successfully executed, the operation of purchasing territory for others is completed.