This project implements a data storage service using the Autonomys Network's substrate-based blockchain. It provides functionality for storing, retrieving, and managing data chunks and metadata.
- Data chunking and reassembly
- Metadata management
- Blockchain integration for data storage
- Transaction management
- RESTful API for data operations
- Node.js (v14 or later)
- Yarn
- Access to an Autonomys Network node
-
Clone the repository:
git clone https://github.com/your-username/autonomys-data-storage.git cd autonomys-data-storage
-
Install dependencies:
yarn install
-
Set up environment variables: Create a
.env
file in the root directory and add the following:RPC_ENDPOINT=ws://localhost:9944 KEYPAIR_URI=//Alice
Adjust the values as needed for your Autonomys Network setup.
Start the server:
cd backend
yarn start
The server will start on http://localhost:3000
.
POST /upload-file
: Submit data for storageGET /retrieve/:cid
: Retrieve data by CIDGET /metadata/:cid
: Get metadata for a specific CIDGET /all
: Get all stored data (limited to 500 characters per entry)GET /transaction/:cid
: Get transaction result for a specific CIDGET /transactions
: Get all transaction resultsGET /fromTransactions/:cid
: Retrieve data directly from blockchain transactions
The service is built with the following components:
- Storage Manager: Handles data chunking, reassembly, and metadata management
- Transaction Manager: Manages blockchain transactions for data storage
- API Layer: Provides RESTful endpoints for interacting with the service
For more details on the architecture and data flow, refer to the design document:
startLine: 141
endLine: 177
Run the test suite:
yarn test