Copy-of-Untitled-1024-×-512-px-1024-×-512-px-24.png
2022-09-26
By Kei

RedStone Contractsに注目:新しいSmartWeave SDKの実装

 

Original by Xylophone

SmartWeaveは、Arweaveのスマートコントラクトシステムであり、それはJavaScriptで書くことができ、イーサリアムや他の代替品と比較して些細な計算コストで、安全なブロックチェーンプログラムのためのユニークなアイデアです。SmartWeaveが他のスマートコントラクトと異なる点は、コントラクトを遅延評価できることです。コントラクト実行の負担をクライアントにオフロードすることで、導入や運用がはるかに安くなります。

RedStoneは、SmartWeaveの最初のイテレーションで、パフォーマンスを向上させ、RedStone Oraclesの効率を高めるための革新に意欲的に取り組んできました。当初はオリジナルのコードに手を加えた後、チームはゼロから書き直し、RedStone Contractsを作成することにしました。

「RedStoneのチームがSmarweaveを使ったインフラを開発する際、途中で度重なる障害に直面しました。いくつかの回避策を講じた結果、オリジナルのコードとはかけ離れたSDKができあがったので、これを別の流れにすることにしました。私たちはこれをRedStone Contractsと名付けました。Peter (Discord: redstone-ppe) はこのアイデアの発案者であり、その背後にいる中心的な開発者です。」- RedStoneの成長部門責任者、マーティンは言います。

RedStone Contractsは、ArweaveベースのOracle RedStoneのSDKを更新し、パフォーマンス、ユーザビリティ、テストの面で様々な改善を施したSmartWeaveの新しいアプローチです。SmartWeaveはArweaveのネイティブなスマートコントラクトエンジンで、JavaScriptまたはTypeScriptで書くことができ、NFTからアプリケーションバックエンド全体まで使用することが可能です。

RedStone ContractsはRedStoneの製品全体を動かしており、Arweaveのヘビーユーザーの一人として、毎日数千件の取引を担当しているため、改善を行う大きなインセンティブがあります。

RedStone Contractsの紹介

RedStone Contractsは、Arweaveへの不要な呼び出しを削除し、キャッシュ層のサポートを追加することで、現在の実装におけるパフォーマンスの問題を解決することを目的としています。例えばKYVEは、この機能を使ってスマートコントラクトによるキャッシングを実装しました。RedStoneでは、ここにその一例をご紹介しています。

コアとなるプロトコル・インターフェースを個々のユニットに分割することで、RedStone Contractsのコードは、分離された実行環境や優れたデバッグ・ツールなどの新機能の開発に合わせて、より簡単にテストやビルドアウトが行えるようになるのです。

その他、ネーミングコンバージョンの改善、ログの強化と完全な設定、ドキュメントの改善、関数の引数の明確な定義など、生活の質を高める機能が追加されています。

RedStone Contractsは後方互換性のあるSDKです。つまり、現在のすべてのSmartWeaveコントラクトは、smartweave-jsの一部として提供されているオリジナルのSDKの代わりに、これを使用することができます。新しい概念と独自のネームスペースを持つメソッドを導入しているため、提供される新しいメソッド呼び出しと構文を使用するために移行が必要です。RedStoneは、既存のSmartWeaveベースのコードをRedStone Contracts SDKを使用するように変換するための移行ガイドを提供しています。

RedStone Contractsは、オブジェクト指向プログラミングデザイン(OOP)を採用し、テストや新機能の拡張を容易にしています。

開発者はすでに自分のプロジェクトにRedStone Contractsを追加することができます:yarn add redstone-smartweave

RedStoneのスマートコントラクトの最善の措置

SDKの具体的な改善と同時に、RedStoneはLOOTのようなコントラクトの構築方法を説明するガイドと、バグがないことを確認するためのコントラクトのテストに関する最善の措置を公開しています。現在のところ、古いツールの問題点として、コントラクトのやり取りがうまくいかなかった正確な理由がなかなか表面化しないことが挙げられます。

RedStoneのLOOTコントラクトチュートリアルでは、簡単なNodeテストの書き方やJESTの使い方を説明し、こちらにその一例をご紹介しています。

これからの道

Redstone Contracts の次のフェーズでは、ユニットテスト、コントラクト呼び出しの完全なスタックトレースの作成(デバッグ用)、分離された実行環境の実装、外部のコントラクトの状態を変更する機能の追加、コントラクトを別のクラスやインターフェースに分割してより OOP なアプローチにする機能などに幅広く注力する予定です。ロードマップの全容はこちらになります


Join our
Telegram / Discord / Twitter / JP Twitter

Tagged with In No tags

Sign up for newsletter

Sign up here to get the latest news and updates delivered directly to your inbox.