-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the official wiki for the InterCooperative Network (ICN) project! The ICN is a pioneering effort to create a decentralized, cooperative-based economy and governance system. This wiki will guide you through the project's goals, architecture, development status, and how you can contribute.
Please Note: The ICN project is currently under active development. All features are still being built, and the codebase is evolving rapidly.
- Overview: Learn about the vision and objectives of the ICN project.
- Architecture: Dive into the technical structure of the ICN, including its key components and modules.
- Development Progress: Stay up to date with what's been built so far and what's coming next.
- Getting Started: A guide to setting up a development environment and contributing to the project.
- Contributing: Find out how you can get involved and help shape the future of the ICN.
- FAQ: Frequently asked questions about the ICN and how it works.
- Community: Join our discussions and connect with other contributors.
The InterCooperative Network (ICN) is a decentralized platform designed to revolutionize cooperative management, governance, and economics. The ICN aims to provide a comprehensive framework for creating and managing cooperatives and communities within a blockchain-based ecosystem. It emphasizes reputation, participation, and cooperation as core components of its economic and governance models.
The ICN project is organized into multiple Rust crates, each responsible for different aspects of the network's functionality. Here is a detailed overview of the main crates and their roles:
-
icn_api
- Handles API interactions and web server functionality.
- Exposes endpoints for interacting with the ICN, including proposal creation, voting, and transaction management.
-
icn_blockchain
- Core blockchain logic, including transaction validation, block creation, and mining.
- Manages the blockchain's integrity and ensures that transactions are processed securely.
- Includes modules for asset tokenization and transaction validation.
-
icn_common
- Provides common utilities, error handling, and data structures shared across the project.
- Contains bit manipulation utilities, error definitions, and core data types like transactions and proposals.
-
icn_consensus
- Implements consensus mechanisms like Proof of Cooperation (PoC) for validating blocks and proposals.
- Manages the logic for ensuring network-wide agreement on the state of the blockchain.
- Includes modules for different consensus algorithms and their implementation.
-
icn_core
- Central coordination logic for the ICN, including configuration and error management.
- Acts as the glue that ties together different modules and ensures they work cohesively.
- Handles logging, configuration management, and core runtime logic.
-
icn_currency
- Manages the economic aspects of the ICN, including currency types and wallets.
- Facilitates the creation, management, and transfer of various currencies within the network.
- Supports multiple currency types, including basic needs, education, and custom currencies.
-
icn_governance
- Handles the governance logic, including proposal creation, voting, and execution.
- Allows communities and cooperatives to make collective decisions through a democratic process.
- Manages the lifecycle of proposals and tracks voting results.
-
icn_identity
- Manages decentralized identities (DIDs) within the ICN.
- Ensures secure and verifiable identities for all participants in the network.
- Supports identity creation, management, and verification.
-
icn_incentives
- Implements incentive mechanisms to encourage participation and cooperation within the ICN.
- Manages reward distribution and participation tracking.
-
icn_language
- Provides a domain-specific language for writing smart contracts and managing cooperative operations.
- Designed to be flexible and easy to use for non-technical users.
-
icn_market
- Facilitates economic interactions between cooperatives and communities.
- Manages market transactions, including buying and selling goods and services.
- Supports decentralized marketplaces within the ICN.
-
icn_network
- Manages network-related functionality, including node discovery, routing, and security.
- Ensures that nodes in the network can communicate securely and efficiently.
-
icn_node_management
- Handles the management of nodes within the ICN, including content storage, node registration, and routing.
- Supports node-level operations and maintenance.
-
icn_reputation
- Manages reputation scores for individuals and cooperatives within the ICN.
- Tracks participation and contribution to build a reputation-based economy.
-
icn_sharding
- Implements sharding to enhance the scalability of the ICN.
- Manages cross-shard communication and synchronization.
-
icn_smart_contracts
- Provides the framework for creating and executing smart contracts within the ICN.
- Supports contract creation, validation, and execution.
-
icn_storage
- Manages decentralized storage solutions for the ICN.
- Provides a scalable and secure mechanism for storing data on the network.
-
icn_testnet
- A test environment for the ICN, allowing developers to test and validate new features before deployment.
-
icn_utils
- Utility functions and helper modules used across the project.
- Provides common types, error handling, and utility functions for other crates.
-
icn_vm
- Implements a virtual machine for executing smart contracts and other programmable logic.
- Supports contract compilation, execution, and state management.
-
icn_zkp
- Integrates Zero-Knowledge Proof (ZKP) technology for enhancing privacy and security within the ICN.
- Supports privacy-preserving transactions and identity verification.
- Blockchain: The backbone of the ICN, responsible for maintaining the integrity of transactions and blocks.
- Consensus: Ensures that decisions within the network are made democratically and fairly, with mechanisms like PoC.
- Governance: Allows members to propose changes, vote, and execute decisions within their communities.
- Currency: Facilitates the creation and management of multiple currency types, supporting the ICN's diverse economic activities.
- Identity: Ensures secure and verifiable identities for all participants in the network.
- Smart Contracts: Provides programmable logic for automating operations and interactions within the ICN.
- Storage: Decentralized storage system for securely storing data and content on the network.
- Reputation: Tracks and manages reputation scores to incentivize participation and cooperation.
Everything is currently under development. The project is not yet ready for compilation or deployment, and the codebase is evolving rapidly.
- Blockchain Implementation: Core blockchain logic is being built, with transaction validation, block creation, and mining capabilities.
- Consensus Mechanisms: Developing the Proof of Cooperation (PoC) consensus module for validating blocks and proposals.
- Governance: Initial governance framework is being set up, with support for proposal creation and voting.
- Smart Contracts: Working on the smart contracts module to enable programmable logic within the ICN.
- Decentralized Storage: Building a scalable and secure storage solution for the ICN.
- Sharding and Scalability: Implementing sharding and other scalability solutions to ensure the ICN can handle large-scale deployments.
- Testnet Deployment: Once the core modules are complete, a testnet will be deployed to allow for real-world testing and feedback.
- Community Involvement: The ICN will be opened up to the broader cooperative and developer communities for contributions, testing, and feedback.
- Monetization and Sustainability: Strategies for monetizing the ICN and ensuring its long-term sustainability are being developed.
[Guide coming soon.]
We welcome contributions from the community! If you're interested in getting involved, please check out our [Contributing Guide](link to CONTRIBUTING.md) and join our discussions on GitHub.
[FAQ section coming soon.]
[Community section coming soon.]
The license for this project is yet to be decided. Stay tuned for updates.
For more information, feel free to reach out via our [contact page](link to contact page) or join our community on [Discord](link to Discord server).