當前位置:首頁 » 幣圈知識 » 合約怎麼學

合約怎麼學

發布時間: 2023-06-08 09:00:39

① 長安鏈--智能合約的開發、編譯、安裝、調用、查詢(二)

官方參考文檔: https://docs.chainmaker.org.cn/dev/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6.html

    學習智能合約的鄭喚開發,通常需要有Demo來學習API的使用方式,項目組織方式。在長安鏈學習過程中也是如此,所以第一步獲取合約模塊。
1.1) 拉取鏡像: docker pull chainmakerofficial/chainmaker-go-contract:1.1.1
長安鏈為我們提供合約開發的鏡像,內部包含合約模板。

1.2) 啟動並進入容器: docker run -it --name chainmaker-go-contract -v ${PWD}:/home chainmakerofficial/chainmaker-go-contract:1.1.1 bash
啟動 chainmaker-go-contract 容器並進入,同時將當前目錄掛載到滾睜容器的 /home 目錄下

1.3) 解壓並分析合約模板
cp /home
tar xzvf contract_go_template.tar.gz

按照大叢歲官方參考文檔方式 在 chainmaker-go-contract 容器中執行 ./build.sh
生成main.wasm文件

2)執行TestUserContractHash Test方法

    這里使用的是默認配置文件,如果需要改變埠、連接數、TLS使能等等,需要修改 chainmaker-sdk-go/testdata/sdk_config.yml

② 大家好,我是那個賺了300%的合約小白

巴菲特所言:「投資很簡單,卻並不容易」,投資的本質是獲取與自己認知相符的財富,而並非憑空獲取的財富,所以關鍵是我們要不斷加強自己的認知和實踐能力。

對於投資者來說,一開始往往是盲目的、從眾的,我們都知道幣圈行情變化莫測,投資需要理智,但是往往到了真正交易時就自信滿滿各種操作。

道理我們都懂,但是仍然走不對投資這條路,我想很多人都像我這樣,覺得自己在幣圈混的時間久了,那些投資的道理就全都懂了。但是沒有在真正的投資交易中碰的頭破血流,很難在充滿誘惑的環境中真正找到教訓。

BG的模擬交易大賽讓我真實的體驗了一下真實交易中的心態起伏,也總結出很多經驗。

開始的時候我開了BTCXNBG空頭,感覺反正是虛擬盤操作重倉出擊,但是後期行情一直上漲,覺得虛擬幣套牢也無所謂,到最後果真損失慘重。事後一想比賽與實盤雖然有實際的差別但是道理都是一樣的,心態也是一樣的,如果是在實盤上操作的話損失是可以想像的,所以懊悔不已。

後面幾天有聽從分析師的策略,根據策略結合自己的實際情況和開倉習慣認真的進行了幾次交易,效果還是很明顯的。連著好幾單都有大幅盈利!

除了能夠在真實的場景中置身其中,體驗交易心態的變化和轉變,其實我們能夠在模擬交易大賽中獲得的遠不止這些。更多的是對合約交易的整體感知和體會,我想大部分合約小白玩家都有這樣的感受,為什麼玩合約容易虧損呢?經過幾天的合約操作,我總結了以下三點原因:

第一點:專業基礎知識缺乏,玩合約就要了解學習相關知識,特別是新手。沒有專業知識,只能像盲人一樣在投資市場瞎摸,虧損的概率是很大的。在這一點上,BG交易所研究院的課程就非常淺顯易懂,對小白用戶特別友好。

第二點、缺乏經驗無耐心,新手由於對市場不熟悉,也沒有操作經驗可參考,總想著立即獲得利潤,在建倉後稍有盈利就會馬上平倉,這樣的操作往往會錯失更大的行情。即使再建倉,收益也要大打折扣。

第三點、因心態不穩定而過度交易,一旦發現行情對自己不利就容易驚慌,只想著降低損失,於是盲目建倉平倉,新手已經無暇顧及自己成交了多少次,是否獲利。交易不在於數量,應當注重質量。

這次與其說去參加比賽爭奪排名,不如說提前學習熟練合約交易的基礎操作,畢竟上來就進行實盤交易的話一不留神損失的就是真金白銀,保險起見很多像我一樣的保守玩家都會選擇在模擬盤中熟悉精進策略技術,或者是玩法規則。等到覺得得心應手,心裡有十足的把握再進行實盤交易,那麼獲取盈利也就順手拈來了。畢竟合約是當下最火熱的投資項目,磨練技能也能迅速搶占頭波紅利。

投資市場遠不像想像中的那麼簡單,除了市場博弈之外,參與者的情緒和態度也非常重要。投資道理是穩定不變的,決定投資成功與否的是如何靈活運用這些道理。

③ 一學就會,手把手教你用Go語言調用智能合約

智能合約調用是實現一個 DApp 的關鍵,一個完整的 DApp 包括前端、後端、智能合約及區塊 鏈系統,智能合約的調用是連接區塊鏈與前後端的關鍵。

我們先來了解一下智能合約調用的基礎原理。智能合約運行在以太坊節點的 EVM 中。因此要 想調用合約必須要訪問某個節點。

以後端程序為例,後端服務若想連接節點有兩種可能,一種是雙 方在同一主機,此時後端連接節點可以採用 本地 IPC(Inter-Process Communication,進 程間通信)機制,也可以採用 RPC(Remote Procere Call,遠程過程調用)機制;另 一種情況是雙方不在同一台主機,此時只能採用 RPC 機制進行通信。

提到 RPC, 讀者應該對 Geth 啟動參數有點印象,Geth 啟動時可以選擇開啟 RPC 服務,對應的 默認服務埠是 8545。。

接著,我們來了解一下智能合約運行的過程。

智能合約的運行過程是後端服務連接某節點,將 智能合約的調用(交易)發送給節點,節點在驗證了交易的合法性後進行全網廣播,被礦工打包到 區塊中代表此交易得到確認,至此交易才算完成。

就像資料庫一樣,每個區塊鏈平台都會提供主流 開發語言的 SDK(Software Development Kit,軟體開發工具包),由於 Geth 本身就是用 Go 語言 編寫的,因此若想使用 Go 語言連接節點、發交易,直接在工程內導入 go-ethereum(Geth 源碼) 包就可以了,剩下的問題就是流程和 API 的事情了。

總結一下,智能合約被調用的兩個關鍵點是節點和 SDK。

由於 IPC 要求後端與節點必須在同一主機,所以很多時候開發者都會採用 RPC 模式。除了 RPC,以太坊也為開發者提供了 json- rpc 介面,本文就不展開討論了。

接下來介紹如何使用 Go 語言,藉助 go-ethereum 源碼庫來實現智能合約的調用。這是有固定 步驟的,我們先來說一下總體步驟,以下面的合約為例。

步驟 01:編譯合約,獲取合約 ABI(Application Binary Interface,應用二進制介面)。 單擊【ABI】按鈕拷貝合約 ABI 信息,將其粘貼到文件 calldemo.abi 中(可使用 Go 語言IDE 創建該文件,文件名可自定義,後綴最好使用 abi)。

最好能將 calldemo.abi 單獨保存在一個目錄下,輸入「ls」命令只能看到 calldemo.abi 文件,參 考效果如下:

步驟 02:獲得合約地址。注意要將合約部署到 Geth 節點。因此 Environment 選擇為 Web3 Provider。

在【Environment】選項框中選擇「Web3 Provider」,然後單擊【Deploy】按鈕。

部署後,獲得合約地址為:。

步驟 03:利用 abigen 工具(Geth 工具包內的可執行程序)編譯智能合約為 Go 代碼。abigen 工具的作用是將 abi 文件轉換為 Go 代碼,命令如下:

其中各參數的含義如下。 (1)abi:是指定傳入的 abi 文件。 (2)type:是指定輸出文件中的基本結構類型。 (3)pkg:指定輸出文件 package 名稱。 (4)out:指定輸出文件名。 執行後,將在代碼目錄下看到 funcdemo.go 文件,讀者可以打開該文件欣賞一下,注意不要修改它。

步驟 04:創建 main.go,填入如下代碼。 注意代碼中 HexToAddress 函數內要傳入該合約部署後的地址,此地址在步驟 01 中獲得。

步驟 04:設置 go mod,以便工程自動識別。

前面有所提及,若要使用 Go 語言調用智能合約,需要下載 go-ethereum 工程,可以使用下面 的指令:

該指令會自動將 go-ethereum 下載到「$GOPATH/src/github.com/ethereum/go-ethereum」,這樣還算 不錯。不過,Go 語言自 1.11 版本後,增加了 mole 管理工程的模式。只要設置好了 go mod,下載 依賴工程的事情就不必關心了。

接下來設置 mole 生效和 GOPROXY,命令如下:

在項目工程內,執行初始化,calldemo 可以自定義名稱。

步驟 05:運行代碼。執行代碼,將看到下面的效果,以及最終輸出的 2020。

上述輸出信息中,可以看到 Go 語言會自動下載依賴文件,這就是 go mod 的神奇之處。看到 2020,相信讀者也知道運行結果是正確的了。

熱點內容
滬深兩市中有區塊鏈元宇宙 發布:2025-07-08 17:09:37 瀏覽:466
Dai幣和usdt 發布:2025-07-08 17:01:57 瀏覽:641
區塊鏈數字金融 發布:2025-07-08 16:54:00 瀏覽:178
trx仰卧劃船 發布:2025-07-08 16:52:03 瀏覽:63
星火礦池算力暴漲 發布:2025-07-08 16:43:12 瀏覽:900
這么區分usdt兼容哪個版本 發布:2025-07-08 16:26:00 瀏覽:328
trx幣發行時候價格漲 發布:2025-07-08 16:25:59 瀏覽:842
韓國比特幣和ppp融資 發布:2025-07-08 16:20:26 瀏覽:24
pi幣對比以太坊 發布:2025-07-08 16:18:26 瀏覽:787
螞蟻s9礦機是哪家公司出產的 發布:2025-07-08 16:01:51 瀏覽:898