API Documentation
Methods
send_decentralized_message(message)
Send a message using IPFS. Example:Copy
Copy
node.send_decentralized_message("Hello, world!")
retrieve_decentralized_message(ipfs_hash)
Retrieve a message from IPFS using its hash. Example:Copy
Copy
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:Copy
Copy
scheduler.add_task(1, "Process data", priority=5)
assign_task(nodes)
Assign tasks to nodes dynamically based on priority. Example:Copy
Copy
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:Copy
Copy
proposal_id = swarm.propose_task("Analyze data trends")
vote(proposal_id)
Vote on a task proposal. Example:Copy
Copy
swarm.vote(proposal_id)
get_consensus()
Check if consensus has been reached for a task. Example:Copy
Copy
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:Copy
Copy
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:Copy
Copy
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:
Copy
Copy
from src.swarm.advanced_swarm_behavior import Swarm
swarm = Swarm(10)
swarm.simulate(5)
Example 2: Decentralized Messaging
Send and retrieve messages using IPFS:
Copy
Copy
# 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:
Copy
Copy
scheduler.add_task(1, "Optimize reinforcement learning parameters", priority=5)
scheduler.assign_task(swarm.nodes)
6. Integration Notes
Environment Variables
Set wallet configurations securely for blockchain integration:
Copy
Copy
SOLANA_WALLET_PATH=/path/to/solana-wallet.json ETHEREUM_WALLET_PRIVATE_KEY=your_private_key_here
Modular Components
All components (e.g., IPFSClient, SwarmConsensus) are designed to work independently or in combination.
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