Database
使用乙太坊作為 ACID 數據庫?
我需要一個具有復雜事務的可靠 ACID 數據庫。在 Java 或其他高級語言中執行此操作很麻煩,尤其是當數據庫跨越多個系統和網路時。為此,我想使用智能合約的 ACID 功能(如果出現錯誤,則區塊鏈回滾)來實現我的內部應用程序(一個或兩個節點的專用網路)。
這有意義嗎?會不會有性能問題?我可以在回复前等待一秒鐘左右。
我可以在回复前等待一秒鐘左右。
這是一個至關重要的要求,因為讀取速度比使用 MySQL 慢得多。你需要做的是
- 設置專用網路
- 了解向/從智能合約寫入和讀取數據(什麼是可能的,什麼還不是)
- 創建專用網路
- 挖一個節點
- 通過 web3 連接您的應用程序,將 web3 連接到 nodejs 微服務或使用 https://github.com/ethereum/ethereumj for java。
但請注意,對於乙太坊初學者來說,這不是在一周內完成的。
祝你好運 !
不,solidity 不符合 ACID。特別是隔離1份 ACID。例如,當執行一個執行事務或遍歷值的 for 循環時,如果輔助使用者同時執行程序並執行相同的函式,則循環將自動遞增到 0,因為它正在重新開始。現在的 Solidity 應該用作數據庫,並且不兼容 ACID,雖然它非常耐用且非常一致,但它最大程度地缺乏隔離性和原子性。