Closed14
flowブロックチェーンのドキュメントを読んでみる[Primary]
flowチェーンはシャーディングなしに拡張される。
ACID準拠。
ACIDがわからなかったので
原子性(A):トランザクションの各ステートメント(データの読み取り、書き込み、更新、削除)は、1 つの単位として扱われます。ステートメントは、実行されるか、あるいは全く実行されないかのいずれかです。この特性は、ストリーミングデータソースがストリーミングの途中で障害が発生した場合などに、データの損失や破損が発生するのを防ぎます。
一貫性(C):トランザクションがテーブルに、事前定義された予測可能な方法でのみ変更を加えることを保証します。トランザクションの一貫性により、データの破損やエラーが起きた場合でもテーブルの整合性を保ち、意図しない実行結果を防ぎます。
独立性(I):複数のユーザーが同じテーブルで読み書きを同時に実行しても、トランザクションが分離され、同時進行のトランザクションが相互に干渉したり、影響を受けたりしないようにします。実際は、同時に発生していも、各要求は単独で発生しているように扱われます。
永続性(D):システム障害が発生した場合でも、正常に実行されたトランザクションによるデータの変更が保存されることを保証します。
flowチェーンの四つの柱
- マルチロールアーキテクチャ
- リソース指向プログラミング
- Developer ergonomics
- ユーザーのオンボーディング
マルチノードアーキテクチャ
- 従来のブロックチェーンは全てのノードが残高やスマートコントラクトのコードなど状態全体を保存していた。
- flowはノードが収集、コンセンサス、実行、検証の4つに役割分割されている。
- これは水平方向(シャーディング)ではなく、垂直方向。
- これによって、低コストに従来のブロックチェーンの数千倍のスループットを実現している。
- コンセンサスノードはPOS(proof of stake)の1つであるHotStuffの亜種を実行している。
HotStuffについて
詳しくは見ていないがFacabookのLibraにも使われているコンセンサスアルゴリズムで速いらしい。
- 実行ノードと収集ノードの運用は専門的なデータセンターを要する。
- コンセンサスと検証ノードは個人でも参加できる、
- Specialized Proofs of Confidential Knowledge (SPoCKs)
- flowチームが開発した暗号技術
Developer-First Experience
- スマートコントラクトの開発言語Cadence
- flow Go SDK
- JavaScript SDK
- VSCode extention
- playground
- flowはベータ状態でコントラクトをデプロイすることを可能としている。
- これはデプロイ後にコードの修正をしたいという開発者の願望を叶えている。
- 十分に動作を確認したうえでベータの状態を解除し、完全に安全な状態にできる。
- これは、安全なコントラクトの状態を確認したいというユーザーの願望も満たす。
- 通常ブロックチェーンはログ機能を備えていない、データが多すぎるから。
- flowは全ての取引についてログを保存する必要がないため、ログ機能を実現できており、ローカルでトランザクションを再現したりなどもできる。
Consumer-Friendly Onboarding
- flowのウォレットにはスマートコントラクトが内蔵されており、ユーザーが資産を失ったりしないようユーザーフレンドリに設計されている。
- (スマートコントラクトが内蔵されてるウォレットってどういう意味や)
Developer Ecosystem
- ネットワークに参加した開発者の意見はどんなものでも聞きたいよ。
- 開発者に分配する用のトークンを一部確保しているよ。
一旦、読み終わったので閉じます。
このスクラップは2022/11/02にクローズされました