Gno: An interpreted, stack-based Go virtual machine to build succinct and composable apps + gno.land: a blockchain for timeless code and fair open-source.
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
```go
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.
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:
[ ] Implements a
ForkBoard()
function to create new boards based on the structure of an original board using copy-on-write (COW) principles.Example
```go 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.