Coveyの高性能(スマート)なスマートコントラクト - 寄稿

寄稿:皆様、こんにちは! Coveyのソフトウェアエンジニアリング取締役のジョン・キャラベロです。今日は、スマートコントラクトについて、そしてそれがCoveyの未来とどのように関係するのかを少しお話しします。先週、私たちはCoveyの最初のスマートコントラクトをSKALEイーサリアムチェーン上にリリースしました。私たちはそれを「Covey Ledger(Coveyの台帳)」と呼んでいます。

Coveyでは誰もが自分の投資アイデアを追求し、共有し、収益化することができます。私たちは、アナリストがこのトラックレコードを自由に参照できるようにして、私たちの助けをできるだけ借りずにそれを収益化するべきだと考えています。現在、JPMやGSのような大企業は、アナリストと彼らのアイデアに価値を見出す人々(投資家)の間に位置しています。私たちの願いは、有用なトラックレコードがあれば出身やコネに関係なく稼ぐことができるようになることです。Coveyは、門番になるのではなく、誰にでも門戸を開きたいと考えています。そのためには、スマートコントラクトが必要なのです!

まず、スマートコントラクトとは何でしょうか。スマートコントラクトとは、イーサリアムブロックチェーン内で動作するプログラムで、宝くじの運営、当選者への支払い、当選者の追跡など、さまざまなことを行うことができます。スマートコントラクトの素晴らしいところは、当選金の支払いなどの簡単な業務を行う仲介業者を省いたことです。最新の流行語であるDAOは、基本的に組織全体を置き換えるコード (スマートコントラクト) のことです。スマートコントラクトが完全に取って代わるまでにはまだ長い道のりがありますが、Coveyはその旅の途中にいるのです。

Covey Ledgerは、アナリストに信頼できるトラックレコードを提供するための第2ステップです。それによって、誰もが永久保存されるデータの文字列を投稿することができます。

これは、取引データをトランザクションに格納するという以前の方法をアップグレードしたものです(私たちが初めてデータをトランザクションに格納した時のことを調べてみてください)。ユーザーの取引を整理して保存し、その取引が行われると同時に、どのようなポジションが置かれたかを知ることができるようになるためには、シンプルなコントラクトが必要でした。

ウォレットの図式

よろしい!ここで少し専門的な話をしますが、それでこの仕組みがよく理解できると思いますのでご容赦ください。Covey Ledgerを支えているのはこれです。

コントラクトのコードブロック

複雑ですが、理解できるように段階を追って説明します。まず最初に、createContentという関数を定義して、任意のコンテンツ、この場合はCoveyに配置したユーザーのポジションを文字列で渡します。関数とは要するに、与えられたアクションを実行するために何度でも呼び出すことができるコードの断片のことですです。また、この関数が内部でどのように振る舞うかを変更するために、引数を渡すこともできます。括弧の間にあるものがそうです。レストランで、メニューとサーバーがあるとします。メニューから欲しいもの、例えばチーズとレタスだけ(これが引数になります)のハンバーガーを伝えると、そのハンバーガーが出てきます。まるで魔法ですね。そして私は今お腹が空いています。

次の段階では、スマートコントラクトにユーザーのコンテンツを格納するための変数を作成します。この変数には、スマートコントラクトにこのトランザクションを送信した人であるアナリストと、コンテンツそのもの(この場合はGOOGL: 0.1などのポジション)が格納されます。注目すべきは、「コンテンツ」は文字列であれば何でも良いということです。そして最後に、記録を保存する目的で、これがいつ作成されたかを格納します。

第三段階では、このデータをanalystContentというマッピングに格納します(allContentの配列もありますが、今は無視します)。マッピングとは、キーと値のペアであり、キーはアナリストのイーサリアムアドレス、値には私たちが作ったあの変数が格納されています。「おもちゃ」というラベルのついた箱の中に、おもちゃが入っていると考えてください。このようにする理由は、イーサリアムのアドレスに基づいてユーザーの取引を整理し、簡単に調べられるようにするためです。まさに私たちがやりたかったことです! さて、盛り上がるのは10行目です。emitキーワードが行うのは、そう、イベントContentCreatedを発行(emit)して、このコントラクトを注意をはらっている人に誰かがコンテンツを作成したことを知らせることです。ユーザーがいつ、どのような取引を行ったかを正確に知る方法がないと話したことを覚えていますか。しかし、今はそれが可能です! データが格納されると、誰がどんなポジションを置いたか、すぐにイベントを発行します。これは、私たち、あるいは私たちのコントラクトでこの特定に注意を払っている誰もが、このコンテンツがいつ作成され、どんなコンテンツだったかをリアルタイムで知ることができ、その情報を使って好きなことができるようにするためです。私たちの場合は、今後詳しくお伝えする予定ですが、非常に革新的なことをするためです。

以上になります! 私たちのスマートコントラクトは、私たちがシンプルデータリポジトリと呼んでいるものです。ユーザーの取引を簡単に検索できる台帳に保存しています。また、取引が行われたときにリアルタイムで応答することもできるようになったため、ユーザーの取引を直接ブロックチェーンに送ることが可能になりました。それによってさらに高度なこともできるようになりますが、それについては今後明らかにしていく予定です。この説明の締めくくりとして、SKALEブロックチェーンエクスプローラー(http://rhythmic-tegmen.explorer.mainnet.skalenodes.com/txs)上でユーザーが私たちのコントラクトに取引を投稿している様子をスクリーンショットでご紹介します。

トランザクションの例

最後になりましたが、明けましておめでとうございます! 2022年はCoveyにとって大きな年になりそうです。この記事で、Coveyの今後の成長と発展においてスマートコントラクトがどのような役割を果たすか、ご理解いただけたかと思います。この記事の反響次第では、Coveyの目標を達成するために特定のテクノロジーをどのように使用しているかを説明する記事も書いていきたいと思います。

明けましておめでとうございます

弊社のスマートコントラクト全体については、以下をご覧ください。

brookerbjb/coveyIO-smart-contract-ledger: trade ledger

元の記事:https://medium.com/covey/covey-is-getting-smart-contracts-b2705be882cd ジョン・キャラベロ著

Coveyの詳細は以下をご覧ください。

https://covey.io/

SKALEの詳細については、以下を参照してください

Discord:https://skale.chat または Telegram:https://t.me/skaleofficial

DappをSKALEにデプロイするためのドキュメントは、開発者ポータル https://skale.network/docs/ でご覧いただけます。

SKALE $SKLトークンの詳細については、SKLトークンのページ https://skale.network/token/ をご覧ください。