Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[r/boards] initialize forking #3145

Open
9 tasks
salmad3 opened this issue Nov 18, 2024 · 0 comments
Open
9 tasks

[r/boards] initialize forking #3145

salmad3 opened this issue Nov 18, 2024 · 0 comments

Comments

@salmad3
Copy link
Member

salmad3 commented Nov 18, 2024

Context:

The forking feature within r/boards enables the creation of new boards based on existing ones. This mechanism ensures that forked boards maintain independence from the original to enable autonomous development and prevent unintended propagation of changes. The initial implementation should prioritize developing an efficient forking mechanism while laying the groundwork for future integration of full governance and moderation features.

Acceptance Criteria:

Warning

TBD and WIP

  • Implements a ForkBoard() function to create new boards based on the structure of an original board using copy-on-write (COW) principles.

    Example
    func ForkBoard(originalBoardID int64, creator Address) Board {
        // Logic to duplicate board structure and set independent state
    }
  • Includes an OriginalBoardID field in the metadata of each forked board to reference the parent board.

  • Includes a ForksList structure in the metadata of the original board to record and display all direct forks for traceability.

  • Ensure that only authorized users can fork a board by implementing an access control check (CanFork()) using integrated ACLs.

  • An approval mechanism allows original board creators to highlight or endorse significant forks using on-chain flags controlled by governance.

  • Forked board maintains a fully independent state, ensuring that changes to the original board do not affect forks.

  • Optimizes ForkBoard() for efficient gas consumption, utilizing shared data references where applicable and duplicating state only when necessary.

  • Metadata links between forks and parent boards are intact.

  • Implements strict ACL checks to prevent unauthorized or malicious forking, with a logging mechanism that records all forking attempts for traceability.

Notes:

Future considerations/implementation:
Clear governance and access controls, combined with transparency and traceability, support community-led oversight and fair decision-making.

  • Direct integration of AdminDAO instances and higher level Moderation DAO.
  • A voting system to enable the community to vote on the visibility or restriction of certain forks.
  • A conflict resolution mechanism to escalate disputes related to forking to higher-level DAOs for fair arbitration.
  • Metadata is compact and uses short hash representations for board IDs to optimize on-chain storage while maintaining traceability.
  • A visualization tool to display fork relationships as an interactive tree.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Triage
Development

No branches or pull requests

1 participant