おはようございます、たつぞうです。
ZIL、DMM・LayerXと提携
ZILの公式ブログを読んでいたら、こんな内容が。
知らぬ間に進んでいるんですねえ。
Zilliqa Project Update#18 - 欧州の拡大、日本の研究、パートナーシップに戻る
シンガポールの2カ月目の更新プログラムを火曜日の午前に変更し、ロンドンのチームが更新情報を入手できるようにしています。
Zilliqaは今月開催されるイベントに参加し、ワークショップを開催し、マーケティングやビジネス開発の努力をしていきます。今月、これらのイベントのいずれかで、私たちに会い、会いましょう!また、いくつかの重要なビジネスおよびパートナーシップの最新情報をお伝えすることにも興奮しています。
ヨーロッパの拡張 - ロンドンオフィス
Zilliqaはロンドンに新しい事務所を開設してヨーロッパに進出し、ロンドンの2日間のハカソトンを含む今月のヨーロッパでの一連のイベントで物事を蹴散らす予定です。我々はより積極的にヨーロッパのコミュニティと交流できるようになることを嬉しく思っています。
CRYSTALセンターのスポンサーシップ
Zilliqaプロジェクトは、シンガポール国立大学のPrateek Saxena教授研究室で最初に考案され、Kyber NetworkのCEOであるLoi Luu氏を含むチームの共同創設者です。元々ELASTICOと呼ばれていたこの研究論文で は、スケーラビリティが高く、ネットワークが成長するにつれてトランザクションのスループットが向上する安全なシャーディングプロトコルを作成する方法を提案しました。
クリスタルセンターの立ち上げ時にキース・カーター准教授と学者の一員であるSaxena教授(まだZilliqaのChief Scientific Advisorである)をサポートすることは大きな栄誉です。CRYSTALセンターは、シンガポール国立大学の学術集会室であり、純粋にブロックチェーンと暗号侵害に重点を置いています。私たちは、Zilliqaの発祥の地であるアカデミアに還元できることを誇りに思い、このグループの最新の技術革新で最前線に立つことを楽しみにしています。
LayerXとDMMのパートナーシップ
我々は、Zilliqaのスマートな契約言語であるScillaの教育と普及を促進するために、9月19日にシンガポールでの会合でLayerXとDMM.comとの提携を発表しました 。
Zilliqaは、日本のDMM.comとLayerXの強力なローカルネットワークを活用し、国際的なブロックチェーン空間でのプレゼンスを確立するのに役立ちます。DMM.comとLayerXは、Zilliqaの技術に関する日本のエンジニアのための一連の教育ワークショップと、そのプラットフォーム上での構築方法から、日本での開発者の採用を促進します。
DMM.comは、オンラインショッピングとビデオオンデマンドサービスを含む多様なビジネスグループを持つ、日本に拠点を置くインターネットコングロマリットです。同社はオンラインエンターテインメントサイトであるDMM.comを管理しており、子会社のDMM.com Securitiesは取引量で世界第2位の外国為替会社です。
LayerXはGunosy Inc(Tokyo Stock Exchange 6047上場)とAnyPay Inc.との合弁会社であり、スマート契約開発/コンサルティング、スマート契約監査などの開発/コンサルティング活動の分野でブロックチェーン技術とサービスを提供していますブロックチェーンプロジェクトに関連しています。
いつものように、Zilliqaについてもっと学び、またプロジェクトの技術的な側面について話し合うには、以下の公式チャンネルを通じて私たちとつながることができます:
電報:https : //t.me/zilliqachat
Slack:https : //invite.zilliqa.com/
Twitter:https : //twitter.com/zilliqa
Reddit:https : //www.reddit.com/r/zilliqa/
Github:https : //github.com/Zilliqa/zilliqa
Gitter:https : //gitter.im/Zilliqa/(エコシステム助成金を含む開発関連のトピック)
今後のイベント
ヨーロッパ
10月3-5日 - マルタ
デルタサミット2018
10月6-7日 - ロンドン・
ジリカ2日間の開発者向けワークショップ&ハッカトン
(無料登録)
10月16-18日 - バルセロナ
ブロックチェーンソリューションワールド
10月19-21日 - バルセロナ
カイロスヨーロッパサミット
10月22-23日 - ドイツ・フランクフルト
東西クリプト会議
北米
8-9 10月-サンフランシスコ
サンフランシスコBlockchainウィーク(ブース#211)
無料シッラワークショップの申し込み通過し、ここで
10月12-13日 - カーネギーメロン大学ピッツバーグ
シラワークショップ
アジア
10月21日 - 東京
ブロックチャインジャム2018
10月23-24 日 - ジャカルタ
テック(アジア)ジャカルタ2018
テクニカルアップデート
過去2週間、技術チームはゴシッププロトコルとアップグレードプロトコルの統合、複数のGPUによるマイニングのサポート、Scillaインタプリタの改良に取り組んできました。また、Zilliqaで開発する方法に関するブログ記事の新しいシリーズを開始しました。
マイニングのためのマルチGPUサポート
以前のアップデートでは、1つのGPUデバイスにCUDAとOpenCLを使用してGPUマイニングをサポートしていると述べました。今週は、マルチGPUマイニングをサポートするようにシステムを改良しました。複数のOpenCLまたはCUDA対応GPUを使用している場合は、ローカルのテストネットで同時にZilliqaをマインドするように設定できます。constants.xmlのNUM_DEVICE_TO_USEを、PCまたはラップトップでサポートされている物理GPUの数に設定してください。その後、PoW用に複数のGPUでZilliqaを実行できます。
ゴシッププロトコル
ゴシッププロトコルを使用する目的は、既存のブロードキャストメカニズムを効率的に置き換えることです。P2PComm :: SendBroadcastMessageの現在のブロードキャストメカニズムは、非常にリソースを消費します。ノードは多くのスレッドを必要とし、多くのTCP接続を開くO(n)メッセージを送信する必要があります。
私たちは、ブロードキャスト・メカニズムにプル&プッシュ・モードのゴシップ・アルゴリズムを実装しました。プロトコルの背後にあるアイデアは、ノードがメッセージをプッシュするためにいくつかのネイバーをランダムに選択でき、これらのネイバーは頻繁に同じメッセージをネイバーにプッシュするということです。一方、ネットワーク内のノードは、近隣のノードの一部からランダムに引き出し、それらのノードと同期します。このようなプッシュ&プル型のゴシッププロトコルを用いて、メッセージをO(log n)ラウンドとO(ln(ln(n)))メッセージに広げることができる。ここで、nはゴシッププロトコルに参加するピアの数である。
プロトコルのアップグレード
システムのセキュリティを確保するために、新しい機能やパッチを使用してシステムをアップグレードまたはアップデートできることは重要な機能です。私たちはアップグレードプロトコルの最初のバージョンを実装しました。
手順は次のとおりです。サイト(https://latest-release.zilliqa.comなど)は、Zilliqa Researchなどの複数の当事者によって署名されたSHA-256値のソースコードとバイナリの最新バージョンをホストします。ソフトウェアバージョンは、VERSIONという名前の分離されたファイルに格納され、バージョン、予想されるDSエポックおよびSHA-256値の情報が含まれます。
各DSエポックの開始時に、 すべてのDSノードがサイトのステータスをチェックします。署名が有効でSHA値が新しい場合、DSノードは新しいバージョンのソフトウェアをダウンロードします。その後、DSリーダーは、DS委員会にアップグレード情報(新しいバージョンと予想されるアップグレードDSエポック)を通知し、このアップグレード情報を含むDSBlockを生成します。シャードノードがDSBlockを受信すると、最新のソフトウェアがダウンロードされ、アップデートまたはアップグレードの準備が整います。
DSblockコンセンサスの終わりに、すべてのノードは、次のDSエポックがアップグレードのために予想されるものであるかどうかをチェックする。予想されるDSエポックの前のDSエポックの気絶したエポックの終わりに、各ノード(特にDSノード)は、DS情報を含む現在の状態をローカルファイルに格納する。次に、現在実行中のプロセスが新しいコンパイル済みインスタンスを呼び出して、ローカルファイルから状態をロードします。完了後、新しいインスタンスは古いインスタンスを終了し、同じポートを再利用している受信メッセージの受信を開始します。すべてのノードは、期待されるDSエポックの開始時にアップグレードされたプロトコルを実行することができます。
シラーインタプリタ
過去2週間で、我々は主に通訳者のパフォーマンス実験を行ってきました。この目的のために、私たちはインタプリタをプロファイリングするために既存のツール(および手動メソッド)を採用しました。結果は、折り畳み時のパターンマッチングにかなりの時間が費やされていることを示しています。意外なことに、通訳者はまた、パフォーマンスに二次的な影響を与えるエラーメッセージを作成していました。これらの2つを修正すると、約1500個の要素のリストを折りたたむときに、ほぼ80倍の改善が得られました。このプロセスでは、他のいくつかのより小さなパフォーマンスの問題も修正されています。今後数週間、より多くの分析と改善が予定されています。
また、データ型の内部表現の一部を変更しました。たとえば、整数データ型の場合は、ネイティブ整数表現を使用します。以前は、すべての整数がペアの幅を持つ文字列として表されていました。これはネイティブ表現を使用するように変更されました。文字列、整数、およびバイト文字列のハッシングも修正しました。以前は、これらの値は非標準の文字列のシリアル化に基づいてハッシュされていました。これらの値は、標準のメモリレイアウト、つまり生データに基づいてハッシュされます。そのため、他のプログラミング言語でこれらのデータ型をハッシュ化できるようになりました。
また、0の `builtin`のサンク構文もサポートしています。これにより、最後に `()`を追加して `builtin schnorr_gen_key_pair()`を呼び出す構文を修正しました。このシンタックスは、サンクスがOCamlなどの言語で書かれている方法と類似しています。
完了した他のタスクの要約:
- `stdlib`に整数比較ユーティリティを追加しました。
- 静的な契約サニティチェッカーを追加しました。これにより、 `scilla-checker`は重複した遷移パラメータ、重複したフィールド、必須の遷移パラメータの欠落などのエラーをチェックします。
- ScillaリテラルのJSON印刷サポートを追加しました(Issue#175)。これは、リテラルの構造化/解析可能な印刷(たとえば、エラー印刷中)には大いに役立ちます。これはデフォルトで無効になっており、デフォルトでは人が読むことができるリテラル印刷となっています。
- Scillaで複数の署名付きウォレット契約を締結しました。
開発ツール
ここ2週間で、JavaScriptクライアントを強化するために頑張ってきました。以前の反復では、すべての機能を単一のトップレベルのエクスポートに束ね、 `fetch`を内部で要求しました。これにより、私たちが改善できると感じたいくつかの制限が導入されました。
- 開発者は、すべての機能を使用していなくても、すべての機能をインポートする必要がありました。
- テストはより困難でした。
- 「プロバイダー」の概念はなく、Metamaskのようなアプリケーションを構築することは困難です。
これらの制限を回避するために、私たちはライブラリを6つのモジュールからなるモノレポに移行しました。すべてのトップレベルモジュールも `Provider`インスタンスを取得します。これにより、モックやテストのための独自の記述や、別のトランスポートを使用することができます。
さらに、この新しいバージョンにはスマートコントラクトイベントのサポートが含まれています。さらに、ライブラリは、トランザクションがブロードキャストされると、確認ノードを自動的にポーリングして確認します。
私たちは週末にテスト用にこのベータ版をリリースしたいと考えています。図書館は依然として生のままであることが予想されますので、弊社と一緒に辛抱強くお待ちください。