Utilisez les contrats pour explorer le génome CryptoKitties
Wolfram Language facilite l'interaction avec les contrats sur les chaînes de blocs. Cet exemple exploite cette fonctionnalité pour séquencer les génomes d'un CryptoKitty et de ses parents. Une visualisation de ces séquences illustre l'héritage génétique.
CryptoKitties est un jeu vidéo développé par Axiom Zen et fonctionne sur la chaîne de blocs Ethereum. Les joueurs peuvent acheter, vendre, collectionner et élever différents types de chats virtuels uniques. Chaque CryptoKitty a une identification et un génome. Le phénotype virtuel se manifeste sous la forme d'attributs appelés "cattributes". Ces attributs peuvent être transmis par les parents aux générations suivantes.
Commencez par extraire l'adresse du contrat CryptoKitties.
Utilisez BlockchainContractValue pour appeler la fonction "getKitty" du contrat sur le CryptoKitty ayant comme identifiant 949502.
À partir des différents champs de données sur le CryptoKitty, extrayez les gènes et les identifiants des parents.
Récupérez maintenant les gènes des parents.
Les gènes sont codés à l'aide de la notation Kai du jeu, qui est une représentation en une seule lettre Base58 de la valeur des nombres entiers des segments à 5 bits. La fonction suivante convertit la représentation des nombres entiers en une liste de gènes, en tenant compte du fait qu'il n'y a que 180 bits actuellement utilisés.
Obtenez les gènes du CryptoKitty et de ses parents.
Isolez les gènes distincts présents dans le CryptoKitty et ses parents.
Créez des règles de couleurs pour chaque gène.
Pour finir, générez un graphique ArrayPlot des trois séquences. Pour chaque groupe de quatre gènes, on définit un "cattribute" qui peut être interprété selon les règles du jeu.