我喜歡 以實現開發速度和出色的可移植性。 當你口袋裡總有一個工具隨時可以解決問題時,這是非常好的。
剛開始接觸國內區塊鏈的時候,挺遺憾的 他的武器庫中沒有現成的 PHP SDK。 好吧,我必須寫它。
起初我不得不使用 簽署交易。 所以,要管理三個位址,就需要啟動三個節點……雖然解決了一些問題,但還是很可憐。 直到人們認識到依賴節點是一條死胡同。 首先,由於功能有限 ,其次是因為速度(那時候節點非常慢)。
我開始了兩份並行的工作。 一是製作一個快速且完全獨立於節點 API 的區塊鏈瀏覽器。 第二個是將 Waves 平台使用的所有功能集中在一個地方。 項目就是這樣出現的 и .
Waves 區塊鏈幕後的第一步是 。 這並不容易,但我們仍然設法編寫了所有餘額的獨立計算,甚至發現原始節點上的計算有錯誤( 順便說一句,這對他們有用,他們為發現的錯誤付出代價)。 您可以在本主題中了解有關 w8io 瀏覽器功能的更多資訊:
在開發 w8io 時,我已經產生了懷疑,但是當工作達到邏輯終點並且我開始創建 SDK 時,我的懷疑得到了證實。 我在任何地方都找不到一些功能,包括最重要的功能,即加密功能。 然後我開始自己製作地基磚。 他們是這樣誕生的: 編碼為base58(實際上是將任何字母編碼為任何), 建立和驗證相容的簽名(使用選項 ), 計算哈希值之一(僅自 PHP 7.2 起可用)等。
這就是我要感謝的地方 一些寶貴的建議為我指明了方向 而不是我熟悉但過時的包含文件。
幾個月後 , 出來 現在已準備好使用 Waves 平台的所有標準功能。 全部可用 只需使用一個套件即可輕鬆建立、簽署和發送交易,該套件可在 PHP 64 及以上的所有 5.6 位元版本上運行。
我們將 WavesKit 連接到我們的專案:
composer require deemru/waveskit我們用:
use deemruWavesKit;
$wk = new WavesKit( 'T' );
$wk->setSeed( 'manage manual recall harvest series desert melt police rose hollow moral pledge kitten position add' );
$tx = $wk->txBroadcast( $wk->txSign( $wk->txTransfer( 'test', 1 ) ) );
$tx = $wk->ensure( $tx );在上面的範例中,我們建立了一個在「T」測試網路上執行的 WavesKit 物件。 我們安裝一個種子短語,根據公鑰自動計算金鑰和帳戶地址。 接下來,我們建立一筆轉帳交易 0.00000001 Waves,從使用助記詞自動計算的地址到別名地址“test”,轉帳以使用私鑰簽署並發送到網路。 之後,我們確保交易成功被網路確認。
事務處理工作集中於 。 為了更好地理解事務處理,您可以學習 或立即轉向說明性範例 .
由於 WavesKit 已在實際使用中開發,因此它已經具有高級功能。 第一個殺手級功能是 ,它控制著交易沒有遺失,而是被確認並達到網路中所需確認數量的所需置信度的實現。
另一個防彈機制是 WavesKit 如何與節點通訊。 在溫室條件下,該框架僅與主節點一起工作,與其保持持續連接,但如果發生錯誤,它可以自動切換到備份節點。 如果設定了備份節點數組,可以呼叫函數 根據目前高度的最大值和響應速度確定最佳節點作為主節點。 現在添加一個內部查詢緩存,並感受到對用戶和節點所有者的關心。
最新的先進機制之一是功能 。 它的出現是因為需要即時回應傳入的交易。 該功能完全解決了與處理區塊鏈中的交易相關的所有細微差別。 不再痛苦,只需使用所需的選項設定回調函數,然後等待新交易啟動您的流程即可。 例如我的另一個項目 完全圍繞這個功能構建,您可以輕鬆地直接研究它是如何工作的 .
我喜歡開源,這是人類最偉大的成就之一。 由於我是唯一的開發者,並且已經達到了我所有需求都已解決的狀態,因此我邀請您使用並做出貢獻 .
來源: www.habr.com
