Ethereum Prototype
flowchart TD
Homeserver[Matrix\nHomeserver]
Contracts <-- Node.js blockchain\nclient library (ethers) --> API
Contracts <-- Web-based blockchain client library\n(MetaMask)--> WebApp
Contracts <-- Web-based blockchain client library\n(MetaMask)--> Widget
WebApp <-- HTTPS --> API
Widget <-- HTTPS --> API
Widget <-- Element-web Widget API\n(npm matrix-widget-api) --> Homeserver
API <-- Matrix Client-Server Protocol\n(npm matrix-bot-sdk) --> Homeserver
Contracts
DAO
We introduce a DAO contract which estabishs the public interface of the DAO core, and provides a context within which the core contracts may securely call each other.
Each of the core contracts must first be deployed. Then the DAO contract is deployed, and for each core contract, makes the first and only call to registerDAO
to set the address of the DAO contract. All calls are then mediated by the DAO contract's public interface. This enables us to enforce the security of the core contracts.
Bench
delegatedStakeOnValidationPool
Forum
getPostAuthors
propagateReputation
Availability
DAO.stakeAvailability
acceptAvailability
randomWeightedSelection