Streaming
The Akave SDK CLI (akavesdk
) is a powerful command-line tool for managing storage and metadata on Akave’s decentralized network. Designed for developers, this SDK enables bucket and file management and efficient file streaming.
Blockchain-based data operations are done through the Blockchain based SDK CLI (preferred)
Installation
Requirements
Clone repository
Install dependency (Requirements: Go 1.22+)
Go to : https://go.dev/doc/install
Mac OS Go install example
Mac OS Installation instructions for Go (for all latest OS installation instructions go to https://go.dev/dl/)
If you don’t already have Go installed, you can add it with:
If Go is installed and you need to upgrade to version 1.22+ use:
After installing or upgrading, confirm the version:
Ubuntu OS Go install example
Download package, check online for new version if needed.
Install Go package
Set path
Add to ~/.bashrc
After installing or upgrading, confirm the version:
Build
Clone repository
Build the SDK CLI
Test & make binary system wide available
To make the akavesdk
binary executable from any location without specifying the full path, you’ll need to move it to a directory in the system's PATH
. Here’s how to do it on Ubuntu, macOS, and other Unix-based systems.
1. Ubuntu/Debian
On Ubuntu and most Debian-based distributions, you can move the binary to /usr/local/bin/
, which is a common directory for user-installed binaries.
2. macOS
macOS also uses /usr/local/bin/
for user-installed binaries. The same command will work:
3. Other Unix-Based Systems (e.g., CentOS, Fedora)
For Red Hat-based distributions like CentOS and Fedora, /usr/local/bin/
is also typically in the PATH
, so you can use the same command:
4. Alternative Locations (If /usr/local/bin
is Unavailable)
/usr/local/bin
is Unavailable)On some systems, you might also consider /usr/bin/
. However, this is usually reserved for system binaries, so /usr/local/bin/
is preferred. If you must use /usr/bin/
, you can do so like this:
Verifying the Installation
After moving the binary, you can confirm it's accessible by all users with:
This command should run without needing the full path, indicating that it’s correctly in the PATH
.
Run
Make sure the minimum file size is 127 bytes! Keep max size to test at 100MB
Streaming API CLI Commands
The CLI also supports direct interaction with the Akave node for bucket and file operations. These commands are useful for high-performance data transfers but do not use the blockchain-based operations provided by the IPC API.
File Management with Streaming API
Node Address
Public endpoint non-blockchain based network (--node-address=connect.akave.ai:5000
)
Bucket Management Commands
The streaming API enables efficient file uploads by chunking files and distributing blocks across nodes.
List Files: List all files in a specific bucket.
File Info: Retrieves metadata of a specific file.
Upload File: Upload a file by specifying a file path.
Download File: Download a file to a destination folder.
Delete File: Soft deletes a specific file.
Advanced Streaming File API Overview
The streaming API splits files into chunks (up to 32MB) for efficient uploads across multiple nodes. Files are uploaded through the following steps:
Create File Upload: Initiates a new file upload with a unique ID.
Upload Chunk: Each chunk is stored with a receipt for its block locations.
Commit Upload: Finalizes the file upload, making it available for access.
Last updated