本書分為基礎(chǔ)篇、安卓篇和蘋果篇;A(chǔ)部分講解開發(fā)以太坊錢包App所涉及的技術(shù)理論基礎(chǔ)知識(shí);區(qū)塊鏈概念及其關(guān)鍵技術(shù),包括分布式數(shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)機(jī)制、密碼學(xué)、分布式賬本等;數(shù)字錢包理論原理與技術(shù)發(fā)展;DApp與數(shù)字錢包的關(guān)系。
安卓篇講解Android Studio開發(fā)工具,Java原生App開發(fā)技術(shù),常用Java開源庫(kù)OkHttp、Retrofit、RxJava和Dagger,Java密碼學(xué)框架JCA/JCE的使用方法,以太坊Java開源庫(kù)Web3j的使用,以及對(duì)Trust Wallet錢包Android版App項(xiàng)目架構(gòu)及核心功能代碼進(jìn)行全面分析等。
蘋果篇講解Xcode開發(fā)工具,Swift原生App開發(fā)技術(shù),常用iOS開源庫(kù)BigInt、APIKit、Moya、R.swift、CryptoSwift和JSONRPCKit,iOS加密庫(kù)Common Crypto和Security庫(kù)的使用方法,基于JSONRPC方式的Web3開發(fā),以及對(duì)Trust Wallet錢包iOS版App項(xiàng)目架構(gòu)及核心功能代碼進(jìn)行全面分析等。
本書適合所有軟件開發(fā)者及技術(shù)管理人員閱讀,特別是對(duì)區(qū)塊鏈或數(shù)字貨幣技術(shù)感興趣、準(zhǔn)備開發(fā)數(shù)字錢包的技術(shù)人員;尤其適合準(zhǔn)備開展以太坊錢包開發(fā)工作的技術(shù)人員閱讀。
你是一個(gè)投資者,聽說(shuō)數(shù)字貨幣不錯(cuò),比特幣從幾分錢漲到幾萬(wàn)塊,以太幣從18元漲到9 000多元;聽說(shuō)EOS更牛,但卻不知道如何下手,眼看著別人隨手投個(gè)幾萬(wàn)元,轉(zhuǎn)眼變成幾千萬(wàn)元,心里很著急,卻不知道該怎么辦……數(shù)字貨幣到底是什么,它到底放在哪里?
你是一個(gè)公司老板,市場(chǎng)上大家都用起了區(qū)塊鏈的名字,大家都在鏈改,或者正在上鏈。聽說(shuō)有用主鏈的、有用側(cè)鏈的、有用代幣的、還有用超級(jí)賬本的甚至還有用空氣幣的,到底哪家好,琢磨了很長(zhǎng)時(shí)間,還是不知道如何選擇。
你是一個(gè)公司的技術(shù)總監(jiān)或者高層,本想守著各種傳統(tǒng)開發(fā)技術(shù),如Java、Python、JavaScript、Nodejs、前端后端、大數(shù)據(jù)、云計(jì)算或人工智能等,拿著高薪過(guò)幾年安穩(wěn)生活。突然有一天老板發(fā)微信給你,說(shuō)要搞鏈改,說(shuō)超級(jí)賬本好像不錯(cuò),是個(gè)大趨勢(shì),還要能夠發(fā)幣,必須覆蓋智慧城市、物流溯源,要求趕緊給出方案,盡快開發(fā)出來(lái),你頓時(shí)感覺(jué)剛剛安穩(wěn)幾天的好日子貌似又要結(jié)束了。
你是一個(gè)程序員,聽說(shuō)區(qū)塊鏈堪比蒸汽機(jī)革命,好比當(dāng)時(shí)發(fā)明電的影響力,又勝過(guò)互聯(lián)網(wǎng)的產(chǎn)生,甚至要顛覆現(xiàn)有的互聯(lián)網(wǎng);區(qū)塊鏈工資高福利棒,想學(xué)習(xí)區(qū)塊鏈技術(shù)。于是你逛遍各技術(shù)論壇和微信群,一會(huì)兒區(qū)塊鏈1.0,一會(huì)兒區(qū)塊鏈2.0,一會(huì)兒認(rèn)為數(shù)字貨幣存在于電腦上別人偷不走,一會(huì)兒又認(rèn)為數(shù)字貨幣存在共享賬本中大家可以一起修改,最后還是沒(méi)搞清楚什么叫數(shù)字錢包。
事實(shí)上,目前對(duì)于一個(gè)對(duì)數(shù)字貨幣或區(qū)塊鏈一無(wú)所知的人,想要進(jìn)入所謂的“幣圈”或者“鏈圈”并非易事。就算是從事計(jì)算機(jī)網(wǎng)絡(luò)軟件技術(shù)相關(guān)的工作人員,也很難掌握相應(yīng)的工具概念等知識(shí),更別說(shuō)非技術(shù)人員了。
這主要是因?yàn)閿?shù)字貨幣及區(qū)塊鏈技術(shù)所使用的底層技術(shù),包括分布式存儲(chǔ)、P2P通信、共識(shí)機(jī)制、密碼學(xué),甚至是智能合約虛擬機(jī),都是很復(fù)雜的軟件工程技術(shù)。
對(duì)于很多已經(jīng)進(jìn)入該圈的人,他本身對(duì)這個(gè)圈子的相關(guān)技術(shù)工具或概念也只是一知半解,想依靠熟人帶著進(jìn)入這個(gè)圈子,也不是很靠譜。所以也有圈內(nèi)人士提出,要想進(jìn)入“幣圈”或者“鏈圈”,就多參加大會(huì),多加微信群,多參與活動(dòng)。這樣可以通過(guò)多渠道對(duì)相應(yīng)的概念及工具進(jìn)行相互驗(yàn)證,就算錯(cuò)了,也是大家一起錯(cuò)。
最開始接觸數(shù)字貨幣的人,可能會(huì)先從私募開始,大家說(shuō)這個(gè)鏈很好,那個(gè)幣很好,漲個(gè)100倍都不是事。所謂的資金盤,往往買了什么幣都不知道,被騙了才知道空氣幣和正宗的數(shù)字貨幣是不一樣的。
雖然聽說(shuō)過(guò)交易所,但是據(jù)說(shuō)需要翻墻,連App都不知道到哪里去下載,就是交易所也要經(jīng)過(guò)層層關(guān)卡才能夠接觸到;最后好不容易從交易所購(gòu)買了一些數(shù)字貨幣,例如比特幣、以太幣或EOS柚子等,看著數(shù)字貨幣大幅度地漲跌,行情好的話賬面上能賺一點(diǎn)差價(jià),行情不好的話賬面是虧損狀態(tài)。如果投入太多,承擔(dān)不了風(fēng)險(xiǎn),還需要考慮賣出數(shù)字貨幣;如果一不小心數(shù)字貨幣所在的交易所跑路了,網(wǎng)站也停了,App也用不了了,投入的錢就會(huì)化為烏有。
經(jīng)過(guò)多次實(shí)戰(zhàn)的慘痛教訓(xùn),終于知道了數(shù)字錢包,還知道了如何分辨錢包地址,可以把交易所的數(shù)字貨幣提出來(lái)存到錢包里去,防止交易所跑路;于是下載了一個(gè)數(shù)字錢包,把自己在交易所買的數(shù)字貨幣提現(xiàn)到自己的數(shù)字錢包里。但是,有一天手機(jī)壞了,于是在新買的手機(jī)重新安裝數(shù)字錢包,這時(shí)可怕的事情發(fā)生了,數(shù)字錢包的數(shù)字貨幣不見了!啊,原來(lái)沒(méi)有進(jìn)行錢包備份,天啊,錢包是需要備份的!
看到這里,您是否覺(jué)得需要一本專業(yè)而且實(shí)用的技術(shù)參考書,來(lái)幫您理清眾多的問(wèn)題,并找到正確的答案和方向?
通過(guò)閱讀本書,大家可以了解以太坊App錢包相關(guān)的技術(shù)問(wèn)題。包括數(shù)字錢包是什么,區(qū)塊鏈為什么必須要用到數(shù)字錢包?區(qū)塊鏈?zhǔn)鞘裁,它是怎么產(chǎn)生的,解決了什么問(wèn)題,它的技術(shù)原理是什么?為什么有了比特幣,還會(huì)出現(xiàn)以太幣,以太幣解決了什么問(wèn)題?以太坊的數(shù)字錢包有什么特別;DApp又是什么,數(shù)字錢包是一個(gè)DApp嗎?DApp必須要用到數(shù)字錢包嗎?
最后本書將直接通過(guò)實(shí)戰(zhàn)開發(fā)Android和iOS錢包App,進(jìn)一步讓大家對(duì)數(shù)字錢包增進(jìn)了解,從技術(shù)層面有更深的理解。
本書希望能說(shuō)明兩個(gè)問(wèn)題:
對(duì)于最終用戶來(lái)說(shuō),數(shù)字錢包在區(qū)塊鏈中其實(shí)是最重要的一個(gè)工具;
對(duì)于技術(shù)開發(fā)人員來(lái)說(shuō),數(shù)字錢包是貫穿所有開發(fā)過(guò)程的一個(gè)極其重要的技術(shù)功能
基礎(chǔ)篇
第1章區(qū)塊鏈2
1.1區(qū)塊鏈簡(jiǎn)介2
1.2比特幣的背景與起源2
1.3比特幣的誕生與發(fā)展2
1.4區(qū)塊鏈的發(fā)展3
1.5區(qū)塊鏈定義4
1.6分布式數(shù)據(jù)存儲(chǔ)4
1.7點(diǎn)對(duì)點(diǎn)傳輸5
1.8密碼學(xué)6
1.9共識(shí)機(jī)制15
1.10分布式賬本17
第2章以太坊24
2.1簡(jiǎn)介24
2.2誕生歷史26
2.3發(fā)展計(jì)劃27
2.4客戶端29
2.5Web3 API30
2.6賬戶45
2.7交易48
2.8區(qū)塊51
2.9智能合約53
2.10代幣55
第3章數(shù)字錢包57
3.1錢包簡(jiǎn)介57
3.2錢包分類57
3.3輕錢包的興起59
3.4錢包基本原理60
3.5錢包技術(shù)發(fā)展61
3.6以太坊錢包App66
第4章DApp72
4.1DApp簡(jiǎn)介72
4.2DApp輕錢包73
4.3DApp發(fā)展現(xiàn)況74
4.4DApp生態(tài)系統(tǒng)76
4.5DApp開發(fā)技術(shù)78
4.6DApp功能結(jié)構(gòu)82
4.7DApp與App82
安卓篇
第5章Android Studio86
5.1Android簡(jiǎn)介86
5.2Android Studio89
5.3Android SDK92
5.4第一個(gè)App94
5.5項(xiàng)目結(jié)構(gòu)97
5.6打包與發(fā)布101
第6章Android開發(fā)技術(shù)105
6.1開發(fā)技術(shù)簡(jiǎn)介105
6.2應(yīng)用架構(gòu)106
6.3Java開發(fā)語(yǔ)言108
6.4其他開發(fā)語(yǔ)言119
第7章Android開源庫(kù)121
7.1OkHttp121
7.2Retrofit123
7.3RxJava127
7.4Dagger133
第8章JCA/JCE開發(fā)135
8.1技術(shù)簡(jiǎn)介135
8.2對(duì)稱加密138
8.3MD消息摘要140
8.4MAC消息認(rèn)證141
8.5非對(duì)稱加密143
8.6數(shù)字簽名147
8.7密鑰生成153
第9章Web3j開發(fā)156
9.1Web3j簡(jiǎn)介156
9.2Android適用性157
9.3賬戶160
9.4交易163
9.5智能合約170
9.6代幣174
9.7區(qū)塊180
第10章Android錢包項(xiàng)目184
10.1開源軟件介紹184
10.2錢包開源項(xiàng)目185
10.3項(xiàng)目概況186
10.4功能架構(gòu)191
10.5導(dǎo)入錢包199
10.6導(dǎo)出錢包209
10.7創(chuàng)建錢包211
10.8發(fā)起交易215
10.9交易記錄222
10.10賬戶查詢227
10.11DApp瀏覽器230
蘋果篇
第11章Xcode238
11.1IDE簡(jiǎn)介238
11.2版本特性238
11.3安裝與配置240
11.4開發(fā)介紹242
11.5創(chuàng)建iOS項(xiàng)目247
11.6打包與上架249
第12章iOS開發(fā)252
12.1Swift簡(jiǎn)介252
12.2開發(fā)文檔254
12.3基本數(shù)據(jù)類型258
12.4特殊數(shù)據(jù)類型259
12.5其他開發(fā)語(yǔ)言261
第13章iOS開源庫(kù)264
13.1BigInt264
13.2APIKit268
13.3Moya271
13.4R.swift274
13.5CryptoSwift277
13.6JSONRPCKit283
第14章iOS加密庫(kù)290
14.1加密庫(kù)介紹290
14.2接口簡(jiǎn)介290
14.3對(duì)稱加密293
14.4MD消息摘要300
14.5MAC消息認(rèn)證301
14.6非對(duì)稱加密303
14.7數(shù)字簽名308
14.8密鑰生成309
第15章Web3 iOS312
15.1Web3簡(jiǎn)介312
15.2Web3接口312
15.3賬戶320
15.4交易322
15.5智能合約325
15.6代幣327
15.7區(qū)塊331
第16章iOS錢包項(xiàng)目334
16.1項(xiàng)目概況334
16.2功能架構(gòu)340
16.3創(chuàng)建錢包360
16.4導(dǎo)入錢包364
16.5導(dǎo)出錢包368
16.6發(fā)起交易371
16.7交易記錄374
16.8賬戶查詢375
16.9DApp瀏覽器381
第17章附錄384
17.1Android國(guó)內(nèi)各大應(yīng)用商店384
17.2ERC20標(biāo)準(zhǔn)智能合約388
參考文獻(xiàn)396