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