API Documentation for Axion Framework
The Axion Framework provides robust APIs for developers to interact with swarm nodes, integrate LLMs, manage tasks, and enable decentralized collaboration efficiently.
1. SwarmNode Class
The SwarmNode
class facilitates decentralized communication between agents using IPFS.
Methods
send_decentralized_message(message)
Send a message via IPFS.Example:
node.send_decentralized_message("Hello, world!")
retrieve_decentralized_message(ipfs_hash)
Retrieve a message from IPFS using its hash.Example:
node.retrieve_decentralized_message("QmHashHere")
2. TaskScheduler Class
The TaskScheduler
class manages task allocation and distribution among agents in the swarm.
Methods
add_task(node_id, task, priority)
Add a task to the scheduler with an assigned priority.Example:
scheduler.add_task(1, "Process data", priority=5)
assign_task(nodes)
Dynamically assign tasks to nodes based on priority.Example:
scheduler.assign_task(swarm.nodes)
3. SwarmConsensus Class
The SwarmConsensus
class handles collaborative decision-making within the swarm.
Methods
propose_task(task_description)
Propose a task for the swarm to vote on.Example:
proposal_id = swarm.propose_task("Analyze data trends")
vote(proposal_id)
Vote on a task proposal.Example:
swarm.vote(proposal_id)
get_consensus()
Check if a task proposal has reached consensus.Example:
consensus = swarm.get_consensus() print(consensus)
4. IPFSClient Class
The IPFSClient
class allows agents to store and retrieve data in a decentralized manner using IPFS.
Methods
upload_file(file_path)
Upload a file to IPFS.Example:
cid = ipfs_client.upload_file("data/task_data.json") print(f"Uploaded to IPFS with CID: {cid}")
retrieve_file(cid, output_path)
Retrieve a file from IPFS using its CID.Example:
ipfs_client.retrieve_file(cid, output_path="downloaded_data.json")
5. Task Execution Examples
Example 1: Running a Swarm Simulation
Simulate a swarm of 10 nodes for 5 iterations:
from src.swarm.advanced_swarm_behavior import Swarm
swarm = Swarm(10)
swarm.simulate(5)
Example 2: Decentralized Messaging
Send and retrieve messages using IPFS:
# Send a message
node.send_decentralized_message("Task completed successfully.")
# Retrieve a message
message = node.retrieve_decentralized_message("QmHashHere")
print(f"Retrieved message: {message}")
Example 3: Task Scheduling
Add tasks to the scheduler and dynamically assign them to agents:
scheduler.add_task(1, "Optimize reinforcement learning parameters", priority=5)
scheduler.assign_task(swarm.nodes)
6. Integration Notes
Environment Variables
Securely configure wallets for blockchain integration:
export SOLANA_WALLET_PATH=/path/to/solana-wallet.json
export ETHEREUM_WALLET_PRIVATE_KEY=your_private_key_here
Modular Components
Each component (e.g., IPFSClient
, SwarmConsensus
) operates independently or as part of an integrated workflow.
Extensibility
Developers can extend the core classes to implement custom workflows or adapt the framework for specific use cases.
7. Common Errors and Troubleshooting
Error
Solution
FileNotFoundError: Wallet path
Ensure the SOLANA_WALLET_PATH
environment variable is set correctly.
ValueError: Private key missing
Set the ETHEREUM_WALLET_PRIVATE_KEY
variable in your environment.
Consensus not reached
Verify active voting agents or increase the consensus threshold as needed.
Last updated