API Documentation

Aether Framework provides several APIs for developers to interact with nodes, integrate LLMs, manage tasks, and enable decentralized collaboration.


1. SwarmNode Class

The SwarmNode class enables decentralized communication between nodes using IPFS.

Methods

  • send_decentralized_message(message) Send a message using 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 distribution and assignment within the swarm.

Methods

  • add_task(node_id, task, priority) Add a task to the scheduler. Example:

    scheduler.add_task(1, "Process data", priority=5)
  • assign_task(nodes) Assign tasks to nodes dynamically based on priority. Example:

    scheduler.assign_task(swarm.nodes)

3. SwarmConsensus Class

The SwarmConsensus class handles collaborative decision-making among agents.

Methods

  • propose_task(task_description) Propose a task to the swarm for consensus. 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 consensus has been reached for a task. Example:

    consensus = swarm.get_consensus()
    print(consensus)

4. IPFSClient Class

The IPFSClient class enables decentralized storage and retrieval of data 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 with 10 nodes:

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 and assign tasks dynamically:

scheduler.add_task(1, "Optimize reinforcement learning parameters", priority=5)
scheduler.assign_task(swarm.nodes)

6. Integration Notes

  1. Environment Variables

    • Set wallet configurations securely for blockchain integration:

      SOLANA_WALLET_PATH=/path/to/solana-wallet.json
      ETHEREUM_WALLET_PRIVATE_KEY=your_private_key_here
  2. Modular Components

    • All components (e.g., IPFSClient, SwarmConsensus) are designed to work independently or in combination.

  3. Extensibility

    • Developers can extend core classes to customize workflows for specific use cases.


Common Errors and Troubleshooting

Error

Solution

FileNotFoundError: Wallet path

Ensure the SOLANA_WALLET_PATH variable is set correctly.

ValueError: Private key missing

Set the ETHEREUM_WALLET_PRIVATE_KEY variable in your environment.

Consensus not reached

Increase the threshold or verify voting agents are active in the swarm.

Last updated