契約を使ってCryptoKittiesのゲノムを調べる
Wolfram言語を使うとブロックチェーン上の契約とのインタラクションが簡単にできる.この例では,この機能を利用して,CryptoKitty(クリプトキティー)とその親のゲノムを並べる.これらの列の可視化によって,遺伝子の継承がよく分かるようになる.
CryptoKittiesは,イーサリアムブロックチェーン上で実行される,Axiom Zenが開発したビデオゲームである.このゲームでは,それぞれが一意的なさまざまなタイプの仮想の猫の,売買,収集,交配ができる.それぞれのCryptoKittyにはIDとゲノムがある.親から次の世代に伝えられる仮想の表現型がcattributeと呼ばれる属性として明らかにされている.
CryptoKittiesの契約アドレスを抽出することから始める.
BlockchainContractValueを使ってCryptoKittyの契約のgetKitty関数をID 949502で呼び出す.
CryptoKittyについての別のデータフィールドから,遺伝子と親のIDを抽出する.
次に,親の遺伝子を取り出す.
遺伝子はゲームのKai表記を使って符号化されているが,これは.5ビットセグメントの整数値の単一文字のBase58表現である.次の関数は,現在使われているのが180ビットしかないという事実を使って,整数表現を遺伝子のリストに変換する.
CryptoKittyとその親の遺伝子を入手する.
CryptoKittyと親に存在する異なる遺伝子を分離する.
各遺伝子の色の規則を作る.
最後に,3列のArrayPlotを生成する.4つの遺伝子の各グループがrules of the game(ゲームの規則)に従って解読可能なcattributeを定義する.