Actualités du développement Safe 🇫🇷 5 août 2021

Ceci est une traduction automatique. L’original en anglais est ici: Update August 5th, 2021

Cette semaine, nous examinons les modifications apportées aux types de données à la suite de types de données sans conflit (CRDT).

Pour ceux qui ont besoin d’un rafraîchisseur rapide, CRDT sont des structures de données avec certaines propriétés mathématiques spéciales. Lorsque plusieurs versions de données existent, telles que des copies d’un document éditées hors connexion sur différentes machines, éventuellement, lorsque les machines sont reconnues, elles toujours convergent sur une version «vraie».

Pour le réseau sécurisé, CRDTS est l’un des moyens essentiels d’assurer un consensus sans nécessiter le type d’ordre intensif, à l’échelle du système, comme avec des cargaisons. C’est un concept joliment élégant, bien que la simplicité apparente cache le fait que sous le capot, des trucs gravement intelligents se passent. Même Google ne pouvait pas craquer La question de la concurrence écrit lorsqu’il a créé Google Docs - ils ont dû recourir à un kilo kileux. Battre Google dans le jeu de concurrence est une opportunité trop belle à manquer!

Pour profiter de la magie de la CRDT, nous reconfigons nos types de données mutables - plus sur cela ci-dessous.

Progress général

Non Testnet Cette semaine, mais cela ne devrait pas être trop loin maintenant. :crossed_fingers: quelques problèmes niggys pour passer en premier.

@chriso a travaillé en arrière-plan sur l’ajout de support pour Aarch64, ou Arm64 Si vous préférez. Vous verrez dans des versions récentes de sn_cli et Safe_Network que des fichiers binaires ARM, ARMV7 et AARCH64 ont été produits. Chris teste les fichiers binaires Aarch64 et a pu confirmer que ces travaux, il y a un script de test que nous utilisons pour vérifier que ici Pour toute personne intéressée. Nous n’avons pas testé les fichiers binaires Legacy Bras et ARMV7, nous n’avons pas le matériel à la main pour un départ, alors utilisez-les à vos risques et périls! Notez également que nos caisses sont actuellement sous le développement lourd alors que nous passons vers le prochain testnet, les derniers fichiers binaires sont donc plus souvent incompatibles avec l’autre sur toutes les architectures. Nous conseillerions à quiconque souhaitant tester pour conserver jusqu’à ce que nous annoncions des versions compatibles à travers le conseil d’administration, c’est-à-dire le prochain testnet.

@qi_ma et @chriso ont cloué quelques bugs dans le processus d’intégration continue. L’exécution en douceur CI est essentielle à la mise en place de demandes de tirage rapidement, ce qui est vital pour l’itération et les tests rapides.

Les lots se produisent avec la mise à jour de la bibliothèque QP2P, avec des éléments tels que Xorname étant déplacé d’un `Sn_ROUTING» SLIMMED-DOWN et IN QP2P. Les enquêtes sont en cours dans les connexions abandonnées, les conservations, les tentatives et les bootstrapping. Trop de choses pour aller ici, mais si vous avez des questions, nous ferons de notre mieux pour y répondre dans ce fil. Coffre-fort à dire, ça garde l’équipe assez occupée!

@oetyng est également profondément profondément dans Batching de flux de morceau et de paiement. Le commandant permet de payer once pour n’importe quel nombre d’opérations. Au sein de cela, c’est aussi la possibilité de calculer et de chiffrer hors ligne et de pré-payer.

Donc, après le cryptage et la persistance locaux, un utilisateur peut:

  1. À tout moment de votre choix, connectez-vous à obtenir un «devis» perpétuellement valide pour le lot.
  2. Avec cette citation - à nouveau, à tout moment de choix - payez et récupérez un `reçu».
  3. Et enfin (vous l’avez enfin deviné, à tout moment (s) de choix) Téléchargez le nombre arbitraire de ces morceaux / ops.

Tout cela est lié au travail en cours pour transférer davantage de travaux sur le client. Après tout, si le client fait la demande, il n’est que juste qu’il devrait aussi faire le travail; Cette approche a également des avantages anti-spam.

Le type de données de séquence a maintenant été supprimé de `sn_api
par @anselme à remplacer avec DataTypes conformes à la CRDT. Plus sur cela ci-dessous.

Types de données

Auparavant, nous avions le type de données cartographiques, qui était une clé modifitable: Store Store utilisé pour stocker des informations telles que les détails du compte; Le type de données de séquence de l’annexe uniquement adapté aux pages Web et aux conteneurs de fichiers, avec la possibilité de remettre à la disposition des versions précédentes; et la blob - données immuables.

Les types de données mis à jour sont tous basés sur - vous avez deviné - CRDTS, qui apporte des avantages distincts.

Un registre est un type de données General CRDT qui contient une valeur. Pour sa sécurité, nous voulions un registre qui nous permettrait également de revenir à temps et de regarder les valeurs précédentes. David Rusu a donc créé un nouveau type de registre basé sur un Merkle Dag appelé Merklereg - un registre avec l’histoire. Cela a été mis en œuvre il y a quelque temps avec son API publique côté client.

Ce nouveau registre rend la séquence obsolète car elle peut faire toute la séquence pourrait faire en termes de stockage des versions précédentes avec le bonus ajouté qu’il peut également gérer la concurrence. Si un client écrit simultanément au registre, cela conduit à une fourche qui peut alors être résolue par le client (ceci était impossible avec des séquences). Sous sa sécurité, nous utilisons le registre pour stocker des pointeurs vers des versions actuelles et précédentes des données, SUCH en tant que fichier texte ou page Web, qui sont stockés en tant que blobs.

Séquence si longue: vague:, mais qu’en est-il de la carte?

Eh bien, des cartes ont été renforcées pour devenir MultiMaps, le «multi-» faisant référence au fait que chaque clé peut désormais avoir plusieurs valeurs. Encore une fois, cela permet une concurrence. Plusieurs clients (par exemple, les applications peuvent modifier un multimap en même temps et le résultat sera des fourchettes. La manière dont ces fourches sont résolues seront finalement à la hauteur de l’application, mais dans le temps, ils convergeront de la même manière que les branches gitent. Le système de réseau de fichiers réseau NRS et le système de résolution NRS NRS sont, à compter de cette semaine, entièrement implémentés en tant que multimaps, qui seront très importants dans la ligne.

Et blobs? Eh bien, ils sont immuables. Dans un monde de changement constant, certaines choses doivent rester les mêmes.


Liens utiles

N’hésitez pas à répondre ci-dessous avec des liens vers les traductions de cette mise à jour de développement et les modérateurs les ajouteront ici.

En tant que projet open source, nous sommes toujours à la recherche de commentaires, de commentaires et de contributions de la communauté. Ne soyez donc pas timide, rejoignez-nous et créons ensemble le réseau sécurisé!