Fonctionnalités récentes et feuille de route 2016

Nœud source: 1576913

Une mise à jour de l'usine MultiChain

Pour changer des articles de blog sur les blockchains en général, j'aimerais faire le point sur MultiChain, tant en termes d'améliorations récentes que de notre feuille de route pour 2016.

Tout d’abord, je voudrais remercier les milliers d’entre vous qui ont téléchargé et construit sur MultiChain, questions posées et nous a envoyé des commentaires. Au cours des huit mois écoulés depuis la première version publique, nos statistiques ont montré une croissance organique constante du trafic et des téléchargements, et j'espère que cela signifie que nous avons atteint le but. En effet, sans citer de noms, nous savons que MultiChain a été utilisé avec succès pour des projets pilotes de blockchain de longue date dans certaines des plus grandes banques, sociétés de conseil, sociétés de technologie financière et informatiques de la planète.

Une question qui nous est souvent posée est de savoir pourquoi MultiChain est en « alpha » depuis si longtemps. La réponse simple est que nous avons été bombardés de demandes de fonctionnalités, dont la plupart nous semblaient logiques, nous nous sommes donc concentrés sur l’ajout de ces améliorations plutôt que sur la mise en version bêta du produit. Cela dit, vous devriez trouver MultiChain très stable pour le logiciel alpha, et nous l'avons testé minutieusement sous des charges extrêmes.

Je souhaite également expliquer comment nous positionnons MultiChain dans l’espace élargi des plateformes blockchain. Au cours des six derniers mois, de nombreux produits concurrents ont été annoncés, des (quasi-)consortiums ont été formés, des entreprises ont levé des dizaines de millions de dollars et, occasionnellement, nous avons assisté à de véritables versions de logiciels. Bien entendu, la concurrence est naturelle et inévitable et nous sommes impatients de voir ces autres plateformes se développer. Nous emprunterons sans aucun doute leurs meilleures idées et nous supposons qu’ils nous rendront le compliment.

Alors, où se situe MultiChain dans tout ce bruit ? En un mot, il se concentre sur produit et praticité:

  • Stabilité. En bifurquant de Bitcoin Core, l'implémentation de référence du réseau Bitcoin, MultiChain s'appuie sur des années de stabilité et de sécurité durement gagnées grâce à la gestion de milliards de dollars de valeur de crypto-monnaie sur l'Internet ouvert. Pour être clair, la base de code Bitcoin Core a des limites architecturales, et nous devrons peut-être éventuellement nous en éloigner. Néanmoins, pour les besoins actuels des utilisateurs, le coût d’une telle solution dépasserait largement les avantages.
  • Facilité d’utilisation. De nombreux utilisateurs de MultiChain nous ont dit qu’il était beaucoup plus facile à utiliser que les plateformes blockchain concurrentes. Je ne me souviens même pas combien de fois j’ai dit à quelqu’un qu’il pouvait passer de zéro à sa propre blockchain privée en quelques minutes, et il ne m’a tout simplement pas cru. Mais c’est vraiment vrai – suivez simplement les instructions sur le download et les la mise en route pages et voyez par vous-même. Pas de dépendances, pas de compilation, pas de manipulation de Docker. Juste trois exécutables autonomes et un fichier README.
  • Fonctionnalités:. Lorsque MultiChain a été lancé pour la première fois, il avait beaucoup moins de fonctionnalités qu'aujourd'hui. Pas de contrôle des actifs par adresse, pas de transactions d'échange atomique, pas de métadonnées de transaction faciles. Alors, comment décider quoi ajouter ? Simple – nous écoutons nos utilisateurs. Parfois, ils savent exactement ce qu’ils veulent, comme l’émission d’actifs ultérieurs, et nous sommes heureux de leur répondre. D’autres fois, ils savent ce qu’ils veulent réaliser, mais ne savent pas comment l’exprimer sous forme de fonctionnalité, et c’est notre travail de le résoudre. Quoi qu’il en soit, la feuille de route de MultiChain est implacablement motivée par les commentaires des utilisateurs, et elle continuera ainsi.
  • Compatibilité Bitcoin. Si vous créez une solution blockchain, vous constaterez que le nœud n’est qu’une petite partie de l’image. Vous aurez peut-être besoin de portefeuilles mobiles ou Web, de solutions de gestion de clés et d'une bibliothèque dans un langage obscur pour décoder, signer et encoder les transactions. MultiChain est conçu pour rendre tout cela aussi simple et rapide que possible, en maintenant une compatibilité maximale avec Bitcoin, pour lequel une énorme quantité d'informations, d'outils et de code est disponible gratuitement. Pour prouver ce point, MultiChain peut même être configuré en tant que nœud sur le réseau Bitcoin.

Fondamentalement, notre objectif est de ravir nos utilisateurs et nous sommes convaincus que c'est la voie la plus sûre vers le succès commercial. Sur cette note, j’aimerais décrire certaines des nouvelles fonctionnalités ajoutées au cours des derniers mois.

Émission d'actifs de suivi (alpha 17)

Cette demande existe depuis un certain temps et constitue la question la plus votée sur les questions et réponses des développeurs. Alors pourquoi cela a-t-il pris autant de temps ? On peut nous reprocher d’être des puristes. Vous voyez, en termes de sécurité, il n'y a aucune différence entre (a) émettre des milliards d'unités d'un actif la première fois et garder la plupart d'entre elles hors de circulation, et (b) autoriser l'émission ultérieure de plusieurs unités du même actif. actif.

Mais il s’avère que du point de vue de nos utilisateurs, is Il y a une grande différence entre les deux cas, car il n’est pas si simple de différencier les unités en circulation active de celles qui sont en marge. Nous sommes donc heureux d'annoncer que, dans la version publiée aujourd'hui, lorsque vous émettez un actif, vous pouvez décider si cet actif est ouvert ou fermé. S'il est ouvert, l'émetteur d'origine peut créer plus d'unités autant de fois qu'il le souhaite.

D’un autre côté, MultiChain fournit également désormais une « adresse de gravure » canonique pour chaque chaîne. Cette adresse est pleine de X et a donc évidemment été créée sans clé privée correspondante (cela prendrait un temps interminable). Les unités d'actifs envoyées à cette adresse ne pourront donc jamais être dépensées et sont détruites de manière transparente. Notez que pour votre sécurité, l'adresse de gravure doit recevoir explicitement des autorisations de réception avant de pouvoir être utilisée.

Appels API : issue, issuefrom, issuemore, issuemorefrom, listassets, getinfo la réponse burnaddress champ.

Explorateur multichaîne

Avec l'alpha 17, nous publions la première version bêta du logiciel gratuit et open source Explorateur multichaîne. Cela fournit une vue Web intuitive de l’état global d’une blockchain MultiChain, similaire aux explorateurs de blockchain que les utilisateurs de Bitcoin connaissent et aiment. Il vous permet de visualiser rapidement et confortablement les transactions, les blocages, les actifs et les adresses, ainsi que les connexions entre eux, le tout dans le confort de votre navigateur Web préféré.

Le MultiChain Explorer est issu du populaire Abe projet, écrit en Python et alimenté par SQLite. Il se connecte à l'API d'un nœud MultiChain local et comprend un serveur Web autonome afin qu'il n'y ait pas de dépendances supplémentaires. Nous espérons que vous apprécierez cet outil et apprécions vos commentaires pour nous aider à l’améliorer encore.

Mode commande interactif (alpha 16)

En tant que fork de Bitcoin Core, MultiChain a hérité du bitcoin-cli outil, que nous avons renommé à juste titre en multichain-cli bien sûr. Cet outil fournit une interface de ligne de commande pratique pour l'API JSON-RPC de MultiChain, permettant d'envoyer des appels d'API à partir de la ligne de commande du système, avec leurs réponses affichées dans le terminal. En coulisses, il lit les informations d'identification de l'API à partir du fichier de configuration de la chaîne appropriée, crée la requête JSON-RPC et décode sa réponse.

En tant qu'utilisateurs de MultiChain nous-mêmes, une de nos frustrations était que multichain-cli devait être exécuté séparément pour chaque requête API. Outre la surcharge du système, cela empêche le type d’interaction fluide fournie par les bases de données SQL. Et donc nous l’avons réparé. À partir de l'alpha 16, si vous exécutez multichain-cli [chain-name] sans commande, vous êtes plongé dans un mode interactif qui vous permet de taper des commandes à plusieurs reprises et de voir leur réponse. Le mode interactif prend en charge les fonctionnalités d'édition standard telles que l'historique (flèches haut et bas), le saut au début (Ctrl A) ou à la fin (Ctrl E) de la ligne et le passage au mot suivant (Ctrl →) et précédent (Ctrl ←). .

Vérification de signature plus rapide (alpha 15)

Lorsqu'il s'agit de performances en Bitcoin ou MultiChain, le goulot d'étranglement le plus crucial est la vérification du Signatures ECDSA sur lequel repose le modèle de sécurité de la blockchain. Le logiciel Bitcoin Core d'origine reposait sur une bibliothèque open source appelée OpenSSL pour la génération et la vérification des signatures, qui a fait le travail, même si elle a rencontré quelques problèmes avec malléabilité, ce qui signifie que plusieurs signatures étaient valides pour une clé privée et une charge utile données.

Les versions récentes de Bitcoin Core ont introduit une nouvelle bibliothèque pour la signature et la vérification ECDSA, appelée libsecp256k1. Cette bibliothèque, écrite de toutes pièces par développeurs de blockchain de classe mondiale, supprime la dépendance à OpenSSL, résout les problèmes de malléabilité et fonctionne plusieurs fois plus rapidement. L'un des avantages d'être dérivé de Bitcoin Core est que MultiChain peut profiter de ce type d'améliorations, qui sont largement examinées et testées par les pairs avant d'être déployées dans le réseau Bitcoin. Et donc alpha 15 fait exactement cela avec libsecp256k1.

Activer l'autorisation (alpha 14)

Lors du développement de la première version de MultiChain, nous avons été confrontés à un dilemme en termes d'autorisation. D’une part, nous n’aurions aucun problème à concocter et à mettre en œuvre un modèle d’autorisations extrêmement puissant, avec plusieurs couches d’administrateurs, des autorisations par actif et des systèmes de vote pondérés. D’un autre côté, nous savions que cela ajouterait de la complexité du point de vue de l’utilisateur et ne correspondrait pas nécessairement à ses besoins. Nous avons donc décidé de commencer avec un modèle simple, contenant seulement six types d'autorisations (connexion, envoi, réception, émission, mine, administrateur) et un vote simple et consensuel pour les changements de privilèges les plus importants. Nous nous attendions à ce que ce modèle devienne plus complexe avec le temps, mais il soit motivé par les exigences des utilisateurs plutôt que par nos propres théories.

Il s’avère que, dans ce cas, la simplicité est en fait plutôt bonne. Mais un partenaire sérieux avec lequel nous travaillons avait besoin de quelque chose de plus. Vous voyez, une adresse MultiChain avec des privilèges d'administrateur a le pouvoir de contrôler tous les types d'autorisations sur une blockchain, sous réserve dans certains cas d'un consensus avec d'autres administrateurs. Mais ce partenaire souhaitait donner à une adresse le pouvoir de contrôler les autorisations de connexion, d’envoi et de réception des autres uniquement, à des fins d’intégration, et n’avoir aucune influence sur des processus plus cruciaux tels que l’exploitation minière et l’émission d’actifs. Nous avons donc ajouté une nouvelle autorisation « activer » qui fait exactement cela. Il s'agissait également du premier exemple d'un partenaire payant pour implémenter une fonctionnalité dont il avait besoin dans le produit, une situation gagnant-gagnant s'il en est.

API de transaction de portefeuille (alpha 13)

En tant que fork de Bitcoin Core, MultiChain a hérité de certains des mauvais côtés des bons. L’un des points faibles de Bitcoin Core est l’API permettant de récupérer des informations sur les transactions dans le portefeuille du nœud local. Il offre deux choix : (a) le getrawtransaction appel qui décode le contenu binaire des transactions, mais n'explique pas comment elles ont affecté le portefeuille local, et (b) le gettransaction et les listtransactions des appels qui visent à décrire les transactions du point de vue du portefeuille, mais le font de manière confuse, avec plusieurs éléments de réponse par transaction. Pire encore, les résultats de ces appels ne peuvent pas être facilement étendus pour fonctionner avec la mise en œuvre par MultiChain des actifs émis par la blockchain.

Cette version a donc introduit un certain nombre de nouvelles API pour interroger les transactions d'un nœud. La sortie de ces appels conserve tous les champs utiles de ceux qu’ils remplacent. Mais ils ajoutent également un certain nombre de nouveaux champs décrivant comment chaque transaction a affecté le solde du portefeuille local, les adresses concernées, la manière dont elle a modifié les autorisations et les métadonnées contenues. Suite à l'introduction (en alpha 8) de la possibilité d'isoler l'activité de chaque adresse dans un portefeuille, les appels se déclinent en deux versions – une paire qui décrit les transactions du point de vue du portefeuille dans son ensemble, et une autre qui les décrit du point de vue du portefeuille. du point de vue d’une adresse de portefeuille individuelle.

Appels API : listwallettransactions, getwallettransaction, listaddresstransactions, getaddresstransaction.

Dans la perspective de 2016

Ce sont quelques-unes des améliorations majeures introduites dans MultiChain au cours des derniers mois. Bien entendu, de nombreuses fonctionnalités plus petites ont également été ajoutées et elles sont répertoriées dans leur intégralité dans le fichier README du téléchargement. Et notre première priorité sera toujours de corriger les bugs dès qu'ils apparaissent. Heureusement, les problèmes que nous avons rencontrés n’ont jamais été de nature architecturale sérieuse – l’heureux résultat de l’utilisation de Bitcoin Core comme point de départ.

En ce qui concerne MultiChain lui-même, après un calendrier de sortie très chargé, nous allons ralentir un peu. C’est parce que nous travaillons sur quelque chose de grand qui prendra quelques mois. Je décrirai cette fonctionnalité en détail dans un prochain article de blog, mais l'idée de base est de fournir un mécanisme d'enregistrement et d'horodatage immuable simple et efficace. pour tout type d'information, une sorte de « bande » numérique. Bien que les métadonnées de transaction dans MultiChain puissent déjà être utilisées à cette fin (en morceaux allant jusqu'à 8 Mo), elles ne sont pas particulièrement pratiques pour le stockage ou la récupération, et il existe des problèmes d'évolutivité lorsqu'il s'agit de données volumineuses.

Qu’est-ce qui motive cette fonctionnalité ? Vos commentaires, bien sûr, nous ont appris que le stockage immuable à usage général est un cas d’utilisation très courant des blockchains. Et si jamais nous constatons une demande importante de « contrats intelligents » (c’est-à-dire de calcul sur blockchain) dans MultiChain, ce système peut servir de couche de stockage sous-jacente, avec des calculs effectués par nœud, si nécessaire. Comme je l'ai expliqué précédemment, il ne sert à rien d’exiger que chaque nœud d’une blockchain privée effectue des calculs en chaîne en temps réel.

Et après ça? Il ne fait aucun doute qu'il y aura d'autres améliorations du produit gratuit, mais nous allons également commencer à travailler sur un version premium de MultiChain. Par chance, au cours des 8 derniers mois, nous avons vu un certain nombre de demandes de fonctionnalités communes partageant les caractéristiques suivantes :

  • Ils sont importants pour les déploiements réels, mais pas pour l’expérimentation initiale.
  • Ils peuvent être implémentés nœud par nœud, sans affecter le consensus d’une chaîne.
  • Les vraies entreprises réalisant de vrais projets semblent plus qu’heureuses de les payer.

Ces fonctionnalités sont liées aux performances, à la sécurité, à la journalisation et à l’analyse, et nous les décrirons en détail au fil du temps. Pour l’instant, je souhaite souligner deux éléments clés à propos de cette version premium. Ce sera d’abord un remplacement instantané pour la version gratuite, donc tout code ou application que vous créez sur MultiChain aujourd'hui continuera à fonctionner sans modification. Deuxièmement, chaque nœud d'une blockchain pourra décider de manière indépendante s'il faut mettre à niveau ou non, car aucune des fonctionnalités premium n'affecte le consensus de la blockchain. Il ne s’agit pas seulement de notre bon cœur – c’est crucial si nous voulons que MultiChain continue de croître de manière organique. Une nouvelle entité pourra se connecter et interagir avec un réseau MultiChain existant rempli de nœuds premium, sans dépenser un centime.

Si vous souhaitez discuter de la version premium de MultiChain, veuillez envoyer un e-mail premium@multichain.com or utilisez ce formulaire. Nous serons heureux de connaître vos besoins et de voir comment nous pouvons y répondre.

Une chose que j’ai apprise au cours des deux dernières années, c’est que personne ne prend un logiciel au sérieux tant qu’il ne peut pas réellement le voir et l’utiliser. Un mois avant la première version de MultiChain, je parlais du produit aux gens et je les ai remarqués hochant poliment la tête tout en pensant évidemment « Oh, sauve-moi, voici un autre bavard rapide avec un livre blanc et aucun code fonctionnel. » Mais dès que vous mettez un produit à disposition, la réponse change complètement. Alors si vous lisez cette future version premium avec une dose de scepticisme, je comprends et je ne vous en tiendrai pas rigueur. Tout ce que je peux dire, c'est que, jusqu'à présent, MultiChain a un bilan très solide en matière de réalisation de ses promesses, et nous sommes impatients de continuer.

Je profite également de cette occasion pour remercier notre équipe pour son travail remarquable. Bien que je sois un codeur sérieux de profession, je passe aujourd’hui tout mon temps à rédiger du contenu, à gérer des produits et à parler aux clients. J’ai une chance incroyable de savoir que je peux faire confiance à nos développeurs pour créer du code solide et efficace, jour après jour, et je ne le prends pas pour acquis un seul instant.

Et enfin, merci à vous d'avoir lu et d'avoir été l'un des premiers utilisateurs de la plateforme MultiChain.

Horodatage:

Plus de Multichain