南京微信開發
您當前的位置 : 首 頁 > 新聞資訊 > 公司新聞

對于軟件開發人員 怎樣理解區塊鏈

2019-05-22

當提到區塊鏈時,我喜歡用代碼的方式解釋區塊鏈,以及它與你當前已掌握的開發知識之間的聯系。盡管現在很多人都在談論區塊鏈,但由于某些原因,似乎很少有人真正理解這種技術在我們現有的開發工具集中的作用。


撇開政治觀點不談,區塊鏈只不過是我們應用程序的一個數據層。將來它可能是惟一的持久性層,當然也不一定非要這樣做,也可以在應用程序中使用多個這種類型的數據層。這里我向你們推薦一個講座,它主要介紹的是關于我們現在開發創建相互連接的區塊鏈時應該著重關注哪些方面,并解釋了這樣做的必要性。


南京軟件開發.png


在我們現有的應用程序中,我們使用api在一個或多個數據庫中存儲信息。區塊鏈項目也是這樣做的,你可以與API(客戶端或服務器端)進行交互,以在區塊鏈中存儲數據。


同樣,我們的數據庫也有相應的模型來構造數據,比如表格、文檔模型,你可以給它命名,他們都是用來描述數據的形態的。區塊鏈通常也不一定要遵守這個約定,它們更像是noSql數據庫,你可以在存儲數據時不去關心數據的格式。但是軟件開發經驗告訴我們,使用非層次數據并不一定是個好主意。這就是為什么我們Z終使用Mongoose作為MongoDB的工具,它能夠延遲對數據建模。因此,在區塊鏈項目中使用Convector之類的工具,能夠使編寫模型塑造數據變得非常簡單和直觀。


相對于數據庫的另一個優勢(可能是Z重要的優勢)是存儲過程。存儲過程是存在于數據庫本身的邏輯(函數),它接收數據的輸入來執行操作。在區塊鏈開發中,這通常被稱為智能契約或鏈碼。知道如何編寫這些函數以及需要考慮的相關事項是我們所說的區塊鏈開發,當然也不要與區塊鏈核心開發混淆,后者指的是開發區塊鏈技術本身,或者是數據庫引擎。


對軟件開發人員來說還有一個比較好理解的參考是控制版本系統,如GIT。你對數據所做的每一個更改都是版本化的,你可以隨時返回來檢查這些更改。注意:你甚至可以更改區塊鏈的歷史值!就像你在GIT中做了一個rebase來合并提交或更新消息一樣。但是在GIT和區塊鏈這兩個環境中,你Z終會得到已更改提交以及所有后續提交的哈希值。你會得到完全不同的歷史記錄,沒有人會接受來自你的任何更改,因為你偏離了主分支(公開的區塊鏈版本)。在區塊鏈中沒有—force強制覆蓋歷史記錄。


區塊鏈是分散的,智能契約的執行必須在不同的計算機上發生多次,這是區塊鏈開發人員在使用區塊鏈作為數據層時必須考慮的分布式計算概念的一部分。


在智能契約執行中,可以將其看作GIT中的一個update hook,由包含區塊鏈副本的節點執行,然后再接收你試圖執行的提交。這個hook包含判斷提交作者是否擁有更新存儲庫的權限的邏輯。你也可以依賴于提交作者的身份驗證,這樣驗證也就只能依靠提交者本人了。


由于你的hook會在所有的對等點執行,所以你的操作必須是確定的,因此這里就需要函數式編程了。你不應該依賴全局狀態(文件系統是全局狀態)或依賴于外部信息源(如與API的連接或任何網絡訪問)生成隨機數。


對于軟件開發人員來說,區塊鏈并不是一種罕見的技術,它的核心功能是建立在我們幾十年前的技術之上的,就像密碼學一樣,GIT本身也遵循著今天大多數區塊鏈所遵循的核心理念。

南京軟件開發,南京小程序開發,南京微信開發

標簽

上一篇:沒有了
下一篇:微信小程序開發三大陷阱2019-05-22

Z近瀏覽:

Copyright ? 江蘇小耳朵信息科技股份有限公司 備案號:蘇ICP備19000811號-2 專業從事于南京軟件開發,南京小程序開發,南京微信開發, 歡迎來電咨詢! 企業分站 | 網站地圖