以太坊理解
1.錢包,錢包是一個程序,主要原理是使用rpc遠(yuǎn)程調(diào)用,和以太坊上的某個節(jié)點進(jìn)行交互,也就是和以太坊進(jìn)行交互,同時錢包重要的功能還有對以太坊賬戶的管理。
2.以太坊只有黃皮書,里面定義了以太坊的協(xié)議,以太坊的客戶端只要按照以太坊協(xié)議來實現(xiàn),比如開放固定的端口等,就視為一個以太坊節(jié)點。比較知名的客戶端有g(shù)eth,默認(rèn)被視為”官方客戶端“,使用go開發(fā)。可以用它來搭建本地私鏈,不過本地私鏈只有一個節(jié)點,我感覺意義不是很大,作為合約的測試環(huán)境還可以。
3.以太坊有很多鏈,我們常說的以太坊是以太坊主鏈,鏈id為1,比較有名的還有測試鏈,跟以太坊主鏈差不多,也是全球通行,有一些默默無聞的大佬在貢獻(xiàn)它們的計算來維持測試鏈的挖礦、運行。以太坊根據(jù)鏈id來區(qū)分不同的鏈。
4.以太坊進(jìn)行交易,主要填的有地址、value、data.。地址代表跟誰交易,value就是要轉(zhuǎn)的幣的數(shù)量,一般的交易只需要填寫地址和value,代表向誰轉(zhuǎn)多少幣。還有要填的就是gas,gas需要填寫gas的數(shù)量和單價兩個數(shù)據(jù),數(shù)量有個最低值,是固定的,也可以往高了填。如果單價過低,礦工可能不會給你的交易上鏈,導(dǎo)致你的交易很久才能上鏈甚至上鏈?zhǔn) ?/p>
5,智能合約的創(chuàng)建,一般data是創(chuàng)建智能合約用的,如果普通交易填了data需要的燃油費會更多。創(chuàng)建智能合約的方式是向全0地址轉(zhuǎn)賬,智能合約也有存款,轉(zhuǎn)賬的時候填的value就是它初始的存款,當(dāng)然value這一項也可以不填。data是智能合約編譯后的字節(jié)碼,字節(jié)碼可以通過工具來進(jìn)行反編譯得到源碼。因此可以說智能合約是開源的。創(chuàng)建智能合約也就是向全0地址轉(zhuǎn)賬成功后,會返回一個地址,這個地址就是合約賬號。和普通賬號的區(qū)別在于有data這個值。其它都一樣。
6.調(diào)用智能合約,調(diào)用智能合約就是向合約地址轉(zhuǎn)賬,和普通轉(zhuǎn)賬的區(qū)別是還需要指定調(diào)用合約的某個方法和填寫方法的參數(shù),合約的調(diào)用方法和參數(shù)調(diào)用也寫在data中。
7.智能合約可以有個構(gòu)造函數(shù),發(fā)布智能合約的時候給這個合約構(gòu)造函數(shù)的參數(shù),之后就不能再改變,比如發(fā)布自己的幣,可以在構(gòu)造函數(shù)指定幣的總數(shù)。
8.web3.js是一個連接到某個節(jié)點的工具,在創(chuàng)建的時候指定ip地址和端口。就可以通過web3.js調(diào)用以太坊的相關(guān)功能,比如查詢連接到的那個節(jié)點的版本,查看區(qū)塊高度、轉(zhuǎn)賬,查詢余額,創(chuàng)造賬戶、合約、發(fā)送交易,等等,因此可以使用web3.js來開發(fā)錢包、dapp等。
9.私鏈在創(chuàng)建的時候記得開rpc遠(yuǎn)程調(diào)用接口,這樣通過web3.js這個工具包才可以連接上本地的節(jié)點。
10.調(diào)用geth的newAcount()方法,相當(dāng)于創(chuàng)建了一個賬戶,存放在本地節(jié)點的某個目錄下,這個目錄下的賬戶作為當(dāng)前節(jié)點持有的賬戶。調(diào)用getAccounts()方法是查看本地節(jié)點的所有賬戶。
總結(jié)
- 上一篇: SpringBoot使用mybatis
- 下一篇: 数据泄露和DID