📚 Agora node [[doc]] ☆
Agora nodes contain community contributions with titles or topics that match your search. x
📜 File 11 - OCECO/doc.md by @communecter ☆ 📎 ⛶

OCECO DOCUMENTATION§

Les objectifs de OCECO§

  • Gouvernance horizontale
  • suivi de projet
  • indicateur d’avancement et d’impacte
  • coConstruction et proposition ouverte
  • Priorisation des propositions
  • implication des acteurs de l’organisation
  • Améliorer les dynamiques collectives et le travail au sein des organisations, et plus globalement la qualité de vie au travail
  • Favoriser l’implication et les changements de posture nécessaires à tous les niveaux de l’organisation
  • Connecter des besoins et des offres

Holoptisme§

L’holoptisme se définit comme un « Espace physique ou virtuel dont l’architecture est intentionnellement conçue pour donner à ses acteurs la faculté de voir et percevoir l’ensemble de ce qui s’y déroule», ou encore « un espace qui permet à tout participant de percevoir en temps réel les manifestations des autres membres du groupe (axe horizontal) ainsi que celles provenant du niveau supérieur émergeant (axe vertical). Jean François Noubel

Stigmergie§

La stigmergie est une méthode de communication indirecte dans un environnement émergent auto-organisé, où les individus communiquent entre eux en modifiant leur environnement.

Donc tout individu souhaitant participer à un système ouvert a la capacité de trouver par lui meme, sa place dans le fonctionnement d’un système complexe.

Comment ca marche§

Community Driven and centered§

OCECO :

  • ne fonctionne que s’il y a interaction de la communauté autour des propositions.
  • peut créer une communauté au travers du partage et d’une volonté commune qui est le contexte porteur du OCECO mais sur tout permet de faciliter l’interaction
  • créer de la transparence automatiquement

4 étapes clefs :

Proposer§

  • Dans un pôle, un service, un programme/projet, sur un sujet, un enjeu particulier, les contributeur(ice)s / parties prenantes / collaborateurs/ postent leurs propositions.

Évaluer (Décider)§

  • Permet de statuer, prendre des décisions sur les propositions faites lors de l’étape précédente (Proposer).
  • Les modes de décision sont configurables et personnalisables (votes, par consentement, …)
  • Des rôles définissent qui peut participer aux prises de décision.

Financer§

  • Affectation des financements ou enveloppes budgétaires aux propositions qui ont été sélectionnées à l’étape précédentes. La nature des financement sont spécifiés pour un meilleur suivi financier (financement via prestation, frais de fonctionnement, investissement interne, co-financement, …)

Suivre§

  • Plans et tâches détaillés par projet
  • Affectation des ressources (humaines, financières, …)
  • Comités de pilotage dynamiques
  • Tableaux de bord (global, par tâche, par contributeur/collaborateur)

Déployer OCECO sur mon organisation§

En quelques clicks Dans communecter, sur votre fiche organisation :

Voir tout les COForms§

Cliquez sur le bouton "COform" dans le menu

⥅ [[https://codimd.communecter.org/uploads/upload_dfada771045c569026087dfa909f7040.png]]

Choisir un template de coform existant§

Cliquez sur le bouton "Menu template"

⥅ [[https://codimd.communecter.org/uploads/upload_b617cbf19e9f2938b185d3d9856dcd75.png]]

Dupliquer Oceco pour cette organisation§

Cliquez sur "OCECOFORM PROCESS"

⥅ [[https://codimd.communecter.org/uploads/upload_9762831fd27e4f6346fa30ab92032471.png]]

Gestion de votre OCECO§

Apparition d’un panneau de gestion dans votre menu COform

⥅ [[https://codimd.communecter.org/uploads/upload_cca9c88bb985bb78e1e08048deff02c0.png]]

Gestion de votre OCECO§

Au survol du panneau de gestion

⥅ [[https://codimd.communecter.org/uploads/upload_d36907b2776cd5ce9228e6abbb67efa2.png]]

Qui peut utiliser votre OCECO§

Pour le moment

  • Ouvert à la communauté (membres de l’organisation ou du projet qui l’a créé) à laquelle s’adresse l’OCECO Form

    • les autres peuvent voir la fiche mais ne pourront accéder au processus OCECO ou à l’interface dédiée
  • Gestion par rôles

    • L’accessibilité aux différentes étapes du processus OCECO est coinfigurable par rôles att

à venir bientot§

  • limiter aux admins
  • pouvoir configurer quels écrans (espaces de l’interface) sont accessibles selon
    • public complet
    • par admin
    • par membre
    • par role

Utiliser OCECO§

Créer des proposition§

La communauté réunit autour de l’organisation contribue ouvertement au fonctionnement, aux critiques, aux créations, à l’amélioration de celle ci en ajoutant des proposition. Cela a pour effet de donner de la visibilité à la créativité et l’intelligence collective de l’organisation et permet à tout le monde de s’impliquer dans le fonctionnement de chaque organisation Le formulaire d’ajout de proposition d’origine permet de déposer :

  • Un titre
  • Une description
  • Un image
  • une thématique
  • l’urgence
  • Lignes de dépense

Lignes de dépense§

Les Lignes de dépense sont soit rempli par le créateur de la proposition, soit par une communauté d’expert capable de créer des ligne de dépense precise répondant au besoin de la proposition permettant ainsi de décrire précisement celle-ci dans la réalisation et la pratique. Une ligne de dépense porte 4 attributs :

  • 2 critère de classification libre :
    • Groupé
    • Nature de l’action
  • Poste ou Libélé de l’action
  • Montant

une fois toutes les lignes de dépense déclarées et claires, les acteurs (interne ou externe) pourront s’engager à réaliser les actions ligne par lignes, et éventuellement proposer un cout pour la réalisation de la tache. Cette approche permet de connaitre le cout d’une proposition et sur quelles ressources celle ci reposera pour se réaliser. Enfin Chaque ligne pourra etre financer par différent type de financement (cf. Section Financement)

  • budget particitif
  • contrat (financement unique)
  • …etc

de plus la consomation des budget pourra aussi prendre plusieurs forme (cf.section Suivi)

  • prestation classique : paiement sur facture
  • co Rémunération : self service dans un budget mis en commun

Liste des propositions§

Permet de naviguer, découvrir toutes les contributions faites dans l’organisation. Certaines Informations s’affichent en modal (popup) pour faciliter la navigation.

Trois Format de visualisation des propositions :

  • Complet ( gros block riche)
  • Réduit (on affiche le sctricte minum)
  • Compacte (3 proposition par lignes)

un Moteur de Recherche permet de filtrer et Naviguer dans la liste des propositions qui peut etre :

  • recherche par nom
  • filtres :
    • Thématique
    • État (Retenu / Rejeté / En attente )
    • Urgence
    • Status
    • Trier

Évaluer une proposition§

Dans l’objectifs de prioriser horizontalement les actions portés par l’organisation et de décider plus ou moins collectivement des orientations de celle ci, l’étape évaluation permet à une communauté d’évaluer les propositions faites à l’organisation

Définir les évaluateurs§

Les politiques décisionnelles variant selon la gouvernance de chaque organisation. Elles définissent comment les décisions sont prises et par qui. Cette communauté de décideur peut etre paramétré et définie de trois facon :

  • ouverte à tous les membres de l’organisation
  • administrateur seulemement
  • membres portant un role défini

Type d’évaluation§

Les politiques décisionnelles variant selon la gouvernance de chaque organisation, plusieurs type d’évaluation sont disponible

  • par vote
  • par critère d’évaluation
    • par note
    • par étoile
  • par évaluation et quadrant Ariane

Voir toutes les évaluations§

l’évaluation globale permet d’avoir une vue d’ensemble de et les résultats des évaluations de toutes les propositions faite, permettant alors d’analyser et prendre les choix pour Retenir dans le temps les prochaines priorités.

Financer une proposition§

Dans l’objectifs de donner de la transparence aux financement du développement, fonctionnement ou des actions portés par l’organisation et de généré un bilan financier des actions. L’étape financement permet à une communauté de financeurs de financer les propositions. Plusieurs modèle de financement peuvent etre expérimenté avec l’interface financement, les financement se faisant sur chaque ligne de dépense déclaré sur la proposition.

  • associer un ou plusieur financeur et un montant à nue ligne d’action de la proposition

Transformatiopn en projet§

à tout les acteurs de l’organisation peuvent transformer la proposition en projet en un simple click. Cela a pour effet d’enclencher l’étape de suivi de projet rattacher aux outils ocecoMobi. une fois en mode Projet, celui ci possède tout les capacités d’un projet communecter :

  • Journal
  • Agenda
  • Communauté
  • sous projets
  • annonces
  • points d’interets
  • créer un costum dédié

Suivre une proposition§

Dans l’objectifs de donner de la transparence et du suivi au déploiment des proposition et d’avoir des indicateur mesurable des résultats ainsi qu’une vision transparente et quasi temps réélle de la consommation des budget qui font tourner l’organisation permettant de généré un bilan d’actoivité des actions menées . L’étape suivi, permet de reellement suivre action par action dont on listera toutes les sous actions, l’aboutissement de chaque sous action et donc de chaque action. D’avoir une vue en détail de qui a fait quoi, en combien de temps et donc combien ca a couté, permettant de nourir activement l’observatoire de lap proposition et automatiquement l’observatoire globale.

L’étape suivre sert comme une vraie interface de gestion de projet :

  • chaque action (ligne de dépense) est rattachée à une liste de sous tache
  • déclarer un référent par actions
  • déclarer des taches à chaque action
  • assignation des taches
  • date de fin de réalisation des taches
  • cout des taches
  • déclarer une fin de tache
  • validation d’action
  • validation du budget rattaché à une action e

Assez naturellement et organiquement une communauté se mobilise autour de la proposition initiale. Des engagements sont validés sur les lignes dépense. La mise en oeuvre se déroule naturellement avec une prise en compte et une validation des travaux effectué, valorisant la ou les acteurs de l’action ou des taches. Le Budget se voit consommer en transparence pour l’organisation, on peut utiliser l’outil comme interface de déclaration de consommation d’un budget contributif, dans le cadre d’une coRémunération par ex.

OcecoMobi§

Une application mobile est disponible, pour la partie suivi, elle est le miroir de l’information décrite dans l’étape de suivi et permet pas mal de chose

  • déclarer de nouvelles actions
  • déclarer des sous tache par action
  • assignation de tache
  • totalement connecté au Rocket Chat

Observatoire d’une proposition§

L’objectif de l’observatoire est de donner à voir au fur et à mesure de l’avancement de la proposition autant les aspects de gouvernance autour de la proposition, les ressources , les finance et les actions associés. les mouvements, les délais, les synthèses et les détails qui permettront d’agir convenablement et en conséquence sur la propoisition.

Observatoire globale§

Les organisations sont des organismes vivants, évoluants et bifurquant en permanence. C’est l’objectif de l’observatoire globale, de voir, comprendre, donner de l’holoptisme aux intéréssé et voir tout ce qui se passe de facon globale, cumulant toutes les propositions, les projets, les actions, les acteurs , les délais, les engagments et problème qui pourrait emerger.

Méthodologie et animation associé à l’outil§

L’outil OCECO vient accompagner tout type d’organisation et s’adapte au fonctionnement existant. Cependant l’approche elle meme demande qlqs adaptation de posture et de positionnement face à l’ouverture à la contribution permanente des acteurs. De bien définir la gouvernance et les type de financement souhaités. L’animation qui accompagne le déploiement de l’outil permet de faciliter , d’étudier et adapté au plus pret du fonctionnement de l’organisation ou des souhait de changement de celle ci.

Paramétrer votre OCECO§

Things you can parameter and configure

  • Name of the Form
  • Description
  • Active / Not Active
  • Private / Public
    • For your community only
    • or anyone can answer
  • If Answers can be read openly: Y/N
  • Can be shared by link
  • can someone answer more then once, or only once
  • Can answers be modified
  • Show answers openly
  • Start and End Date
  • if an account is needed, if not only an email will be asked
    • send email confirmation
  • for open sessions , start and end date
  • verrouiller a partir d’une étape
  • renommer le nom des réponses avec un champ de réponse

Oceco sur mobile§

Participer au développement§

Description Technique§

Le processus OCECO tourne sur un COcktail technologique de COmmunecter :

  • COForm : Des formulaires 100% configurable, dupliquable et totalment connecté à votre réseau social
  • CObservatoire : des visualisations personnalisés totalement connectées au COForms
  • COMOBI : L’application mobile de communecter qui tourne sur Android et Ios
📜 File doc.md by @agora@botsin.space ☆ 📎 ⛶
📜 File doc.md by @an_agora@twitter.com ☆ 📎 ⛶

Loading pushes...

✨ AI Synthesis Mistral Gemini ChatGPT Claude x

Expanding this section will automatically generate an AI synthesis of the contributions in this node.

🌌 Agora context for [[doc]]

Rendering context...

📚 Agora node [[agora doc]] (pulled by the Agora)
📜 File agora doc.md by @flancian ☆ 📎 ️🔗 ✍️
📜 File agora doc.md by @agora@botsin.space ☆ 📎
📜 File agora doc.md by @an_agora@twitter.com ☆ 📎
📜 File agora doc.md by @anagora@matrix.org ☆ 📎
📜 File agora-doc.md by @anagora@matrix.org ☆ 📎
📚 Agora node [[asciidoc]] (pulled by the Agora)
📜 File AsciiDoc.md by @agora@botsin.space ☆ 📎
📚 Agora node [[debatdoc]] (pulled by the Agora)
📜 File Debatdoc.md by @agora@botsin.space ☆ 📎
📚 Agora node [[flancia doc]] (pulled by the Agora)
📜 File Flancia doc.md by @flancian ☆ 📎 ️🔗 ✍️
📜 File flancia doc.md by @flancian ☆ 📎 ️🔗 ✍️
  • I have a [[Google Docs]] version of https://flancia.org . I thought several times of moving writing there, but I haven’t solved the question of how to ‘sync back’ text to the site, if at all.
📜 File flancia-doc.md by @patterning ☆ 📎
  • a [[book]], maybe.

Always feel free to fail. Free yourself from suffering if you can and free others: this is the whole of [[Flancia]] as a practice maybe.

But I’m getting ahead of myself; please allow me to introduce myself. I’m a [[Flancian]]. In practice, you can think of this as meaning that I try to be open about my thoughts by default, follow the [[Principle of Charity]] in discussion and attempt to increase overall [[loving-kindness]].

To learn how to communicate with you better I started writing this.

How are you today?


(Some Flancians identify as Buddhists like me, but these labels are optional.)

If you need help, please [[reach out]] at 0@flancia.org.


Next: https://anagora.org/go/flancia-doc

📜 File stoa-test-2/flancia-doc.md by @agora ☆ 📎
  • a [[book]], maybe.

Always feel free to fail. Free yourself from suffering if you can and free others: this is the whole of [[Flancia]] as a practice maybe.

But I’m getting ahead of myself; please allow me to introduce myself. I’m a [[Flancian]]. In practice, you can think of this as meaning that I try to be open about my thoughts by default, follow the [[Principle of Charity]] in discussion and attempt to increase overall [[loving-kindness]].

To learn how to communicate with you better I started writing this.

How are you today?


(Some Flancians identify as Buddhists like me, but these labels are optional.)

If you need help, please [[reach out]] at 0@flancia.org.


Next: https://anagora.org/go/flancia-doc

📜 File stoa-test/flancia-doc.md by @agora ☆ 📎
  • a [[book]], maybe.

Always feel free to fail. Free yourself from suffering if you can and free others: this is the whole of [[Flancia]] as a practice maybe.

But I’m getting ahead of myself; please allow me to introduce myself. I’m a [[Flancian]]. In practice, you can think of this as meaning that I try to be open about my thoughts by default, follow the [[Principle of Charity]] in discussion and attempt to increase overall [[loving-kindness]].

To learn how to communicate with you better I started writing this.

How are you today?


(Some Flancians identify as Buddhists like me, but these labels are optional.)

If you need help, please [[reach out]] at 0@flancia.org.


Next: https://anagora.org/go/flancia-doc

📜 File flancia-doc.md by @anonymous@doc.anagora.org ☆ 📎 ✍️
  • a [[book]], maybe.

Always feel free to fail. Free yourself from suffering if you can and free others: this is the whole of [[Flancia]] as a practice maybe.

But I’m getting ahead of myself; please allow me to introduce myself. I’m a [[Flancian]]. In practice, you can think of this as meaning that I try to be open about my thoughts by default, follow the [[Principle of Charity]] in discussion and attempt to increase overall [[loving-kindness]].

To learn how to communicate with you better I started writing this.

How are you today?


(Some Flancians identify as Buddhists like me, but these labels are optional.)

If you need help, please [[reach out]] at 0@flancia.org.


Next: https://anagora.org/go/flancia-doc

📚 Agora node [[gitdoc]] (pulled by the Agora)
📜 File GitDoc.md by @vera ☆ 📎

Automatically push git repo

📚 Agora node [[google doc]] (pulled by the Agora)
📜 File google doc.md by @flancian ☆ 📎 ️🔗 ✍️
  • a [[thing]].
    • #pull [[google docs]]
    • I love docs, but unfortunately you can’t embed them using [[iframes]] as of [[2022-08]] :(
    • figure out how to easily import one in the Agora?
📜 File google doc.md by @agora@botsin.space ☆ 📎
📜 File google doc.md by @an_agora@twitter.com ☆ 📎
📚 Agora node [[hedgedoc]] (pulled by the Agora)
📜 File hedgedoc.md by @flancian ☆ 📎 ️🔗 ✍️
📜 File hedgedoc.md by @patterning ☆ 📎

Here is an example configuration for Nginx.

map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
}
server {
        server_name hedgedoc.example.com;

        location / {
                proxy_pass http://127.0.0.1:3000;
                proxy_set_header Host $host; 
                proxy_set_header X-Real-IP $remote_addr; 
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
                proxy_set_header X-Forwarded-Proto $scheme;
        }

        location /socket.io/ {
                proxy_pass http://127.0.0.1:3000;
                proxy_set_header Host $host; 
                proxy_set_header X-Real-IP $remote_addr; 
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
        }

    listen [::]:443 ssl http2;
    listen 443 ssl http2;
    ssl_certificate fullchain.pem;
    ssl_certificate_key privkey.pem;
    include options-ssl-nginx.conf;
    ssl_dhparam ssl-dhparams.pem;
}
📜 File pages/hedgedoc.md by @vera-logseq ☆ 📎
  • Here is an example configuration for Nginx.

Backlinks last generated 2022-01-28 07:55:20

📜 File logseq/pages/hedgedoc.md by @vera ☆ 📎
  • Here is an example configuration for Nginx.
📜 File stoa-test-2/hedgedoc.md by @agora ☆ 📎

Here is an example configuration for Nginx.

map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
}
server {
        server_name hedgedoc.example.com;

        location / {
                proxy_pass http://127.0.0.1:3000;
                proxy_set_header Host $host; 
                proxy_set_header X-Real-IP $remote_addr; 
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
                proxy_set_header X-Forwarded-Proto $scheme;
        }

        location /socket.io/ {
                proxy_pass http://127.0.0.1:3000;
                proxy_set_header Host $host; 
                proxy_set_header X-Real-IP $remote_addr; 
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
        }

    listen [::]:443 ssl http2;
    listen 443 ssl http2;
    ssl_certificate fullchain.pem;
    ssl_certificate_key privkey.pem;
    include options-ssl-nginx.conf;
    ssl_dhparam ssl-dhparams.pem;
}
📜 File stoa-test/hedgedoc.md by @agora ☆ 📎

Here is an example configuration for Nginx.

map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
}
server {
        server_name hedgedoc.example.com;

        location / {
                proxy_pass http://127.0.0.1:3000;
                proxy_set_header Host $host; 
                proxy_set_header X-Real-IP $remote_addr; 
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
                proxy_set_header X-Forwarded-Proto $scheme;
        }

        location /socket.io/ {
                proxy_pass http://127.0.0.1:3000;
                proxy_set_header Host $host; 
                proxy_set_header X-Real-IP $remote_addr; 
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
        }

    listen [::]:443 ssl http2;
    listen 443 ssl http2;
    ssl_certificate fullchain.pem;
    ssl_certificate_key privkey.pem;
    include options-ssl-nginx.conf;
    ssl_dhparam ssl-dhparams.pem;
}
📜 File hedgedoc.md by @anonymous@doc.anagora.org ☆ 📎 ✍️

Here is an example configuration for Nginx.

map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
}
server {
        server_name hedgedoc.example.com;

        location / {
                proxy_pass http://127.0.0.1:3000;
                proxy_set_header Host $host; 
                proxy_set_header X-Real-IP $remote_addr; 
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
                proxy_set_header X-Forwarded-Proto $scheme;
        }

        location /socket.io/ {
                proxy_pass http://127.0.0.1:3000;
                proxy_set_header Host $host; 
                proxy_set_header X-Real-IP $remote_addr; 
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
        }

    listen [::]:443 ssl http2;
    listen 443 ssl http2;
    ssl_certificate fullchain.pem;
    ssl_certificate_key privkey.pem;
    include options-ssl-nginx.conf;
    ssl_dhparam ssl-dhparams.pem;
}
📜 File hedgedoc.md by @agora@botsin.space ☆ 📎
📜 File HedgeDoc.md by @agora@botsin.space ☆ 📎
📜 File hedgedoc.md by @an_agora@twitter.com ☆ 📎
📜 File hedgedoc.md by @anagora@matrix.org ☆ 📎
  • [[2023-07-28 01:52:48]] [[@flancian:matrix.org]] (link):
    • w.r.t. to wysiwyg editing, I don’t know of a great option currently. [[hedgedoc]] is pretty good and what we run as a default stoa in anagora.org; that install just syncs to the agora every 30s with a cronjob which dumps documents to markdown on disk.
📚 Agora node [[liliana bodoc]] (pulled by the Agora)
📜 File Liliana Bodoc.md by @flancian ☆ 📎 ️🔗 ✍️
📚 Agora node [[lowry doc]] (pulled by the Agora)
📜 File lowry doc.md by @flancian ☆ 📎 ️🔗 ✍️
📚 Agora node [[newdoc]] (pulled by the Agora)
📜 File newdoc.md by @flancian ☆ 📎 ️🔗 ✍️
📚 Agora node [[original ctzn design doc]] (pulled by the Agora)
📜 File Original CTZN design doc.md by @pfrazee@ctzn.one ☆ 📎

Original CTZN design document§

Technical architecture


Data mesh§

CTZN requires a "data mesh" to provide globally-accessible databases. It currently uses the Hypercore Protocol but other data networks such as IPFS could satisfy this requirement. The Hyperbee Key-Value Database is the most frequently-used structure at present.

The mesh uses public-key cryptography to address databases. The pubkeys represent agency in the mesh, much like server origins represent agency in the Web.

All users have first-class identities in the mesh because any device can generate pubkeys and their databases — not just publicly-reachable servers.

The mesh is extremely cache-friendly. All information is signed and can be redistributed trustlessly by peers. This ensures the network can scale while maintaining agency; users sign their data, retain key ownership, and then sync the dataset to caching peers which can handle heavier traffic.

The mesh uses "pull-based" transmission. Software identifies which databases to sync and then will watch the databases for updates to their records. As a result, aggregated indexes act as the basis of communication.

To give a trivial example, 3 user databases which post shortform blogs could be aggregated into a "feed database" which represents their 3-person community’s posts; the 3 users would reference the feed db to see their community activity. The production of shared indexes therefore determines participation in a shared space.

Identity and re-homing§

All databases possess a public-key ID and may optionally declare a DNS-based ID. DNS-IDs take the form of "username@domain" and can be resolved by contacting the server at "domain."

All records are identified by public-key URLs. This means that links are not changed by DNS-ID changes.

Databases can "rehome" (change their DNS-ID) by declaring a new ID in their dataset and updating the server records which map the DNS-ID to their database. Pubkey-rotation is solved by a similar process; a new database (and new pubkey) are minted and the DNS-ID records are mapped to the new database. The new database declares itself as a "resumption" of the old database, thereby maintaining old records at their previous URLs while producing new records under the new pubkey URL.

Rehoming is easily detected by followers of a database and can be validated by ensuring the database and DNS records agree. Once they are found to agree, followers can update their local records to the new identifiers.

Data schemas§

CTZN relies on machine-readable database schemas which are addressed by URLs. These schemas are automatically enforced by the software in order to maintain compatibility across the network.

Within Hyperbees, the schema URLs act as the identifiers for datasets. Therefore a given user’s comment (id=1) might be addressed by the following pseudo-code:

userDb.getTable('ctzn.network/comment').get(1)

Which maps to the following hyper-url:

hyper://1234..af/ctzn.network/comment/1

Schemas can be seen as major determinants of applications; support of a specific schema determines the nature of an application. The strict schema model ensures clarity in the dataset while also providing extensibility by creating new schemas with new URLs.

Applications model§

Applications interact with the data-mesh to provide new UIs and new PXs.

CTZN’s use of the data mesh means that access to the network can be provided by Web, desktop, or mobile applications. The only requirement is that the application can access the data mesh (Hypercore Protocol).

Database signing keys may be held by user devices or by "hosting servers." Since servers can be accessed remotely via the Web, they provide a convenient solution to key-hosting. The user can migrate to a new key-host by using the key-rotation process.

CTZN uses JSON-RPC over WebSockets for RPC.

Whenever possible, applications are encouraged to access datasets using Hypercore rather than via RPC requests to other nodes. This ensures the network will take advantage of the scaling properties of the Hypercore Protocol. An exception to this rule is the API for write-access, which is required when the user’s keys are held in a hosting server.

Core schema


CTZN’s core schema is still under development but will include table-definitions and flows for:

  • User accounts
  • Social following
  • Short-form posts and comments
  • Content voting
  • Notifications
  • Community aggregation

Political architecture


Our goal is to establish trust in authority when it must be given. Our tools for gaining that trust is distributed & contingent authority ("Authority model") and constrained powers of authority ("Constitutional networks").

Authority model§

CTZN’s authority model has two primitives:

  1. DNS ownership - provides the ability to map domains and DNS-IDs to pubkeys.
  2. Pubkey ownership - provides the ability to modify a given database.

These primitives are used to create PX spaces. Consider the following example:

Element

Impact

example.com maps to the example database’s pubkey

Establishes the example.com community’s database.

example declares the usage of ctzn.network schemas

Establishes the example.com community’s core application.

example declares 3 user records — alice@example.com, bob@example.com, and carla@example.com — and their database pubkeys.

Establishes the example.com community’s membership.

alice, bob, and carla databases declare profile and post records.

Establishes the content of the example.com network.

example database declares a secondary index of the latest posts.

Establishes the timeline of the example.com community activity.

We can infer a few things from this example:

  • There is a hierarchy of identity, from DNS -> server database -> user databases
  • User databases maintain their own profile/post records and can be accessed independently of the example.com community.
  • The example.com database maintains community information only, including secondary indexes which represent a current "view" of the activity.
  • As records are linked by their pubkey-URL, there is no hard binding to the example server.

Because of this separation of authority, the members of example.com maintain the freedom to migrate their content away from the example community without any disruption to the network. This migration would be similar to "forking" a codebase — the content would remain but the community authority would be modified.

This interplay between community authority and individual authority is a repeatable PX pattern. By maintaining individual rights to migrate away from a community, the community maintainers’ authority is contingent on the members’ satisfaction with their leadership.

Constitutional networks§

A future goal for the Hypercore Protocol is a toolset for "smart contracts" - code which has externally-auditable execution. Once CTZN’s data-mesh supports smart contracts, it will integrate the contracts in the PX patterns to create community "constitutions."

Using constitutions, communities can define a strict ruleset by which community-members can exercise authority. These constitutions will establish rules for:

  • Identity registries
  • Content and user moderation
  • Discovery and content-ranking

And so on.

Smart-contract constitutions create both transparency and constraints. Moderators will not be able to modify the community datasets without following the contract rules, and every action will be placed in an auditable log.

Constitutions will provide members of large-scale communities an assurance over how their community will be governed. Rather than trusting the moderators to follow a declared process, the community can legislate the constitution to establish how moderators will govern.

📚 Agora node [[pandoc]] (pulled by the Agora)
📜 File pandoc.md by @an_agora@twitter.com ☆ 📎
📜 File pandoc.md by @anagora@matrix.org ☆ 📎
📚 Agora node [[postdoc]] (pulled by the Agora)
📜 File postdoc.md by @agora@botsin.space ☆ 📎
📜 File postdoc.md by @an_agora@twitter.com ☆ 📎
📚 Agora node [[technical doc]] (pulled by the Agora)
📜 File 08 - COstum/technical doc.md by @communecter ☆ 📎

costum en BDD§

les costums utilisent du json pour fonctionner pour les maps des costums ya 3 endroits possible à regarder 1 - l’entrée en base de données dans la collection costum 2 - le fichier json car en local , on travail en direct 3 - l’attribut costum de l’element (orga dans votre cas) car il surcharge les 2 premiers

📜 File en/07 - COstum/technical doc.md by @communecter ☆ 📎

costum en BDD§

les costums utilisent du json pour fonctionner pour les maps des costums ya 3 endroits possible à regarder 1 - l’entrée en base de données dans la collection costum 2 - le fichier json car en local , on travail en direct 3 - l’attribut costum de l’element (orga dans votre cas) car il surcharge les 2 premiers

📚 Agora node [[treedoc]] (pulled by the Agora)
📜 File treedoc.md by @flancian ☆ 📎 ️🔗 ✍️

treedoc§