前言
在以太坊上,我們可以通過部署智能合約來實現我們需要的功能,合約代碼中我們往往需要定義一些變量,這就涉及到了智能合約變量的存儲機制。這篇文章我們將根據solidity的所有的變量命名的類型來講解智能合約的存儲機制。存儲機制
每個在以太坊虛擬機中運行的智能合約的狀態都在鏈上永久地存儲著。這些值存儲在一個巨大的數組中,數組的長度為2^256,下標從零開始且每一個數組能夠儲存32字節(256個比特)長度的值。并且存儲是稀疏的,并沒有那么密集。變量類型
Solidity的數據變量類型分為兩類:值類型-valuetype引用類型-referencetype值類型布爾型(bool)2bit(0/1)整型(int/uint)根據關鍵字的不同表示不同長度,int8表示8bits有符號數定長浮點型(fixed/ufixed)Solidity還沒有完全支持定長浮點型。可以聲明定長浮點型的變量,但不能給它們賦值或把它們賦值給其他變量定長字節數組(byte/bytes)定義數組時定義長度地址類型(adress)160bits地址類型成員變量(balance,transfer....)balanceuint256(256bits)transfer()uint256(256bits)引用類型不定長字節數組類型(bytes/byte,string,uint....)結構體(struct)映射(mapping)簡單分析
Input Output發文介紹保護隱私的智能合約解決方案Kachina:8月5日消息,Cardano開發團隊Input Output發文介紹與愛丁堡大學合作開發的保護隱私的智能合約解決方案Kachina,它利用ZK Snarks使用戶能夠在不犧牲去中心化特性的情況下實現隱私保護和通用智能合約功能。Input Output表示,提議的設計主要是理論上的,但Kachina證明了在現實生活的限制下創建保護隱私的智能合約的可能性。[2022/8/6 12:05:39]
寫一個簡單值類型的合約pragmasolidity^0
優化存儲原則:如果下一個變量長度和上一個變量長度加起來不超過256bits,它們就會存儲在同一個插槽里。
總結
本篇文章詳細講解了智能合約的優化存儲原則,數組類型,字符串類型,結構體類型和映射類型的存儲機制。同時提供了基于python的計算代碼,用以驗證機制分析的正確性。當然,本文設計的智能合約設計并不復雜,在實際開發過程中遠比此復雜,需要經歷一些分析,在能找到正確的存儲位置。最后,希望通過本文章可以幫助大家進一步的了解智能合約。
撰文:ForesightVentures概要:行情大跌,短期活躍度再次遭遇嚴重打擊。整體鎖倉量情況出現大幅度下降。NFT市場有所回暖,可關注前期強勢NFT.
1900/1/1 0:00:00作者:JoeAndrewsAztec2.0已經上線6個月了。自啟動以來,我們的系統已經傳輸了550萬美元的價值,讓隱私轉賬成了用得起的選擇.
1900/1/1 0:00:009月10日,Centrifuge聯合Odaily星球日報和PolkaWorld舉辦「星際巡航——與Centrifuge一起探索波卡DeFi新范式,暨Altair平行鏈競拍發布會」.
1900/1/1 0:00:00有時人們忘記了市場是向前看的。但在我們深入研究智能合約平臺估值之前,先了解一些背景信息。如今,智能合約平臺再次成為人們投機的中心,但這一次出現了轉折.
1900/1/1 0:00:00公鏈再次吸引了整個市場的眼球。從走進通縮紀元的以太坊,到生態體系日趨完善的Solana,再到啟動了巨額生態激勵計劃的雪崩協議和Fantom,公鏈賽道的各大項目們在過去的近一個月時間內相繼發力,在.
1900/1/1 0:00:00在數字資產這個熱點快速更迭,新寵層出不窮的領域,顛覆式規則和全新概念的興起似乎更加容易,所能帶來的想象空間也更加不受邊界桎梏的限制.
1900/1/1 0:00:00