前言
在以太坊上,我們可以通過部署智能合約來實現我們需要的功能,合約代碼中我們往往需要定義一些變量,這就涉及到了智能合約變量的存儲機制。這篇文章我們將根據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)簡單分析
基于AI的Web3智能合約生成器Mazzuma完成新一輪融資,Adaverse參投:金色財經報道,基于人工智能技術的Web3智能合約生成器Mazzuma宣布完成新一輪融資,Cardano生態投資機構Adaverse參投,但具體融資金額暫未披露。Mazzuma總部位于非洲加納,旨在利用人工智能技術支持幫助開發人員為Web3去中心化應用程序無縫生成智能合約代碼,繼而加快區塊鏈智能合約的創建和部署,新資金將用于推動旗下新產品MazzumaGPT上線。 (disrupt-africa)[2023/6/27 22:03:15]
寫一個簡單值類型的合約pragmasolidity^0
優化存儲原則:如果下一個變量長度和上一個變量長度加起來不超過256bits,它們就會存儲在同一個插槽里。
總結
本篇文章詳細講解了智能合約的優化存儲原則,數組類型,字符串類型,結構體類型和映射類型的存儲機制。同時提供了基于python的計算代碼,用以驗證機制分析的正確性。當然,本文設計的智能合約設計并不復雜,在實際開發過程中遠比此復雜,需要經歷一些分析,在能找到正確的存儲位置。最后,希望通過本文章可以幫助大家進一步的了解智能合約。
Tags:BITINTBITSITS韓國交易所upbit怎么注冊HINT Chainbitstamp交易所客服YFI CREDITS GROUP
撰文出品|白澤研究院阿拉伯聯合酋長國,簡稱“阿聯酋”,是一個由阿布扎比、迪拜、沙迦、富查伊拉、烏姆蓋萬、阿治曼和哈伊馬角這7個酋長國家組成的聯邦國家.
1900/1/1 0:00:00頭條 CryptoPunk#9997在佳士得以3385萬港元拍賣價成交在佳士得舉行的主題為“NoTimeLikePresent”的拍賣中.
1900/1/1 0:00:00GaryGensler,這是一個讓加密世界為之震動的名字。自今年4月就任SEC主席以來,他對Crypto施以的管制措施,讓Crypto行情波動頻頻.
1900/1/1 0:00:00播報數據由Greeks.liveDataLab格致數據實驗室和Deribit官網提供。下跌繼續,凌晨比特幣盤中一度跌破40000美元整數關口,以太坊也跌破3000美元關鍵點位.
1900/1/1 0:00:00Odaily星球日報譯者|余順遂 摘要: 以太坊游戲AxieInfinity最近人氣飆升,NFT總交易量超過20億美元.
1900/1/1 0:00:00本報告中,我們將分析資金是如何進入區塊鏈行業以及進入后遵循的路徑,我們將選取市值排名前四的加密貨幣進行分析,分別是比特幣、以太坊、USDT、ADA.
1900/1/1 0:00:00