介紹 編寫 Go 代碼不需要像寫 C/C++ 那樣手動(dòng)的 malloc和 free內(nèi)存,因?yàn)?malloc 操作由 Go 編譯器的逃逸分析機(jī)制幫我們加上了,而 free 動(dòng)作...
介紹 編寫 Go 代碼不需要像寫 C/C++ 那樣手動(dòng)的 malloc和 free內(nèi)存,因?yàn)?malloc 操作由 Go 編譯器的逃逸分析機(jī)制幫我們加上了,而 free 動(dòng)作...
介紹 了解操作系統(tǒng)對(duì)內(nèi)存的管理機(jī)制后,現(xiàn)在可以去看下 Go 語言是如何利用底層的這些特性來優(yōu)化內(nèi)存的。Go 的內(nèi)存管理基本上參考 tcmalloc 來實(shí)現(xiàn)的,只是細(xì)節(jié)上根據(jù)自...
寫在篇頭 本文是對(duì)以太坊的黃皮書的解析,并參照go-ethereum中的實(shí)現(xiàn),將相應(yīng)的代碼也列了出來。黃皮書中使用了大量的公式將以太坊的一些流程和狀態(tài)都公式化了??床豢吹枚?..
三、交易執(zhí)行 交易執(zhí)行是以太坊中最為重要的部分。 在執(zhí)行交易之前首先需要對(duì)交易進(jìn)行初步校驗(yàn): 交易是RLP格式的,無多余字符 交易的簽名是有效的 交易的nonce是有效的(與...
六、虛擬機(jī)的執(zhí)行模型 上文三四五部分都是從流程上對(duì)交易執(zhí)行(包括合約創(chuàng)建和合約調(diào)用)進(jìn)行了介紹。本章節(jié)介紹以太坊中的虛擬機(jī)執(zhí)行的流程。以太坊虛擬機(jī)EVM是圖靈完備虛擬機(jī)器。E...
1. 編譯geth geth是以太坊開發(fā)中最常用的工具,是官方客戶端??梢赃\(yùn)行以太坊節(jié)點(diǎn)、創(chuàng)建和管理賬戶、發(fā)送交易、挖礦、部署智能合約等。 由于我們?cè)谝蕴坏幕A(chǔ)上進(jìn)行了一些...
寫在篇頭 本篇要介紹的內(nèi)容大概是回答以下幾個(gè)問題。 geth是怎樣或者使用何種技術(shù)在終端中實(shí)現(xiàn)了一個(gè)javascript的運(yùn)行環(huán)境的。 在終端中輸入的一個(gè)命令是如何調(diào)到以太坊...
基礎(chǔ)知識(shí) Trie樹 Trie是一種搜索樹,又稱字典樹(digital tree)和前綴樹(prefix tree)。不同與二叉搜索樹,鍵值并不是由樹中的節(jié)點(diǎn)存儲(chǔ),而是取決于...