以太坊中有兩類帳戶,它們共用同一個地址空間。web
外部帳戶的地址是由公鑰決定的,合約帳戶的地址是在建立該合約時肯定的。函數
合約帳戶存儲了代碼,外部帳戶則沒有,除了這點之外,這兩類帳戶對於EVM來講是同樣的。 每一個帳戶有一個key-value形式的持久化存儲。其中key和value的長度都是256比特,名字叫作storage..net
另外,每一個帳戶都有一個以太幣餘額(單位是「Wei"),該帳戶餘額能夠經過向它發送帶有以太幣的交易來改變。3d
使用web3.eth.getCode()方法能夠判斷一個給定的地址的帳戶是外部帳戶,仍是合約帳戶。這個函數返回指定地址的代碼,因爲外部帳戶沒有代碼,所以僅僅會返回0x
,而合約帳戶將會返回0x
開頭的16進制代碼字符串。例如:code
var code = web3.eth.getCode("0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8") if(code === '0x') console.log('外部帳戶') else console.log('合約帳戶')