corda

帳本:
corda 從每一個節點的視角看待帳本都是不同的。並非全部節點有全部帳本信息的。
valut視爲SQL數據庫,只保存 兩兩節點之間的數據庫node

狀態:
狀態是不變的對象,表明共享的事實,好比特定時間的協議、合約
要想改變狀態,將舊值的事實標記爲歷史的,複製舊值並改變一些屬性
共享事實或協議隨時間的生命週期由狀態序列來表示
vault(SQL數據庫) 追蹤每一個狀態序列的頭部
從每一個peer的視角看,分類帳本包含在vault中追蹤的全部狀態序列頭(或非歷史的) 狀態
若想獲得當前分類帳本狀態(設計到不一樣 類型協議),只需拿出全部狀態頭或全部未消費的狀態都拿出來,就可經過分類帳得到與你交易的全部對手方的完整視圖。數據庫

交易:
交易原子性 事務性
未提交的交易是更新帳本的請求
交易由數字簽名,因此強制它輸出狀態不可變
交易請求須要驗證 這與 交易建立 相對獨立的進行
任何人均可以發起交易請求, 而後 與該交易有關的人都驗證(經過合約代碼進行)並簽字了以後, 還有公證服務簽字 才能成功提交寫庫,輸入狀態標記爲歷史的,產生新的輸出狀態了。
合約:
合約代碼是特定環境下純粹的可執行的函數,基於 need-to-know(須要知道所需的) 驗證交易,而且肯定它們是不是分類帳的有效更新函數

法律文書
法律文書被合約引用, 當合約代碼不足時,能夠依賴線程

命令
命令隨交易出現,並代表意圖,並經過列出的公鑰指定所需的簽名者設計

時間戳
時間戳權威機構由公證服務提供 提供可信的時間 驗證
時間戳判定 交易發生在特定的時間窗口中,並非一個點協程

 

流程 flow
阻塞方式編寫的代碼不能中止和重啓,採用 checkpoint。
由於流程一步步的, 酷似 nodejs中的回調地獄反人類設計,corda中採用 checkpoint ,作了某些流程以後,將先前的操做持久化到磁盤上,此時 宕機的話 從 最近的checkpoint 從新開始發起便可。
使用一些已經簽名的子流程,能夠避免重複造輪子。
流程是輕量級的進程(纖程 (協程)而不是線程,用戶模式運行的輕量級線程),用於協調複雜、多步驟, 多節點之間須要互動所需的節點才能就共享的事實達成共識對象

相關文章
相關標籤/搜索