Bitcoin cüzdan geliştirme: cüzdan projesinin genel mimari tasarımı

Amaçları

Bir NodeJS arka uç çerçevesi oluşturun Ön uç web çerçevesi oluşturun Ön uç etkileşimi

Önsöz

Bu kurs, Bitcoin cüzdan geliştirme, arka uçta oluşturmak için kullanılan NodeJS, istemcide kullanılan web ön ucu, VSCode geliştirme araçları, Ubuntu16.04 sistemi (tabii ki Mac, windows sistemleri de mevcuttur), düğüm v8.11.3, npm v5.6.0 .

1. Ön uç mimarisi

Geliştirme odağımız arka uç uygulamasıdır, bu nedenle herkesin hızlı bir şekilde başlamasını sağlamak için web istemcisi diğer popüler çerçeveleri kullanmaz, burada kodu basitleştirmek için yalnızca jQuery çerçevesi kullanılır ve ayrıca form doğrulamasını basitleştirmek için bir jQuery Validate eklentisi de vardır.

Genel web ön uç teknolojisi:

html + css + javascript + jQuery.

Web ön uç işlevleri:

Cüzdan modülü Mnemonic cüzdanı oluşturun cüzdan cüzdanı içe aktarın cüzdanı dışa aktar anımsatıcı ifade hesap modülü sorgu bakiyesi alt hesap sorgusu oluşturun alt hesap: adres, yol, özel anahtar Bitcoin transfer işlemi kaydı

İkincisi, arka uç mimarisi

Bu cüzdan uygulaması Bitcoin blok zinciri ile etkileşime girer.Bitpay tarafından geliştirilen, geliştirmemizi kolaylaştıran ve kullanmamız için daha kapsamlı bir API içeren bitcore-cüzdan-istemci kitaplığını kullanıyoruz.

Ek olarak, arka uç Http çerçevesi, birçok işlevi kapsayan güçlü ifade kullanır, çünkü bitcore-cüzdan-istemci kitaplığında sağlanan API, eşzamansız geri aramalar yoluyla veri döndürecektir, bu nedenle koa gerekli değildir.

Bu projede aşağıdaki gibi kullanılan daha az üçüncü taraf kitaplığı vardır:

bitcore-wallet-client: Bitcore-cüzdan-hizmetinin istemci kitaplığıdır.BWS bitcore-cüzdan hizmeti ile iletişim kurmak için REST API kullanır.Tüm REST uç noktaları basit eşzamansız yöntemler olarak paketlenir. Bitcore-cüzdan-hizmet kütüphanesi, çoklu imzalı Bitcoin HD cüzdan hizmetini uygular.Copay ve Bitpay cüzdanları bu hizmeti kullanır. express: bir web çerçevesidir, sağlanan HTTP sunucu aracı çok güçlüdür ve entegrasyon ve kullanım koa'ya benzer şekilde basittir. ejs: değişken değerlerini dinamik olarak html'ye ayarlayabilen bir JavaScript şablon motorudur. Şablon oluşturma ara yazılımı koa-görünümleriyle birlikte kullanılması gerekir. Genel mimari, olgun bir MVC mimarisi kullanır. Projenin girişi index.js dosyasıdır. Proje yapılandırılır ve arka uç hizmeti 3000 numaralı bağlantı noktasına bağlıdır ve basitleştirilmiş durumda. Ön uç hizmete eriştiğinde, router.js yönlendirme dosyası görevleri URL'ye göre denetleyiciler klasörüne atar İş belgeleri.

Bitcoin cüzdan projesini hızlı bir şekilde geliştirmeye başlamak için hem ön hem de arka uçlar aynı proje üzerinde aynı anda geliştirilir.Ön uç sayfa dosyaları statik içerisine yerleştirilir ve klasörleri görüntüler.Elbette mobil (iOS, Android) aramaları da destekler. Ön ve arka uçları ayırmanız gerekirse, statik ve görünüm klasörlerini doğrudan ayırabilirsiniz.

Üç, proje başlatma

Yeni bir proje ve BTCWallet klasörü oluşturun ve ardından aşağıdaki adımları izleyin

Yeni bir proje ve BTCWallet klasörü oluşturun ve ardından aşağıdaki adımları izleyin

lixu @ ubuntu: ~ $ cd '/ home / lixu / Masaüstü / demo / BTCWallet /' lixu @ ubuntu: ~ / Masaüstü / demo / BTCWallet $ npm init

Ardından projeyi başlatmak için tekrar tekrar Enter tuşuna basın. Daha sonra proje paketinin konfigürasyon dosyası olan package.json dosyası otomatik olarak oluşturulur.Aşağıda projede kullanılması gereken kütüphaneleri tanıtıyoruz ve aşağıdaki json'u package.json dosyasının son alanına kopyaladık.

, "bağımlılıklar": {"bitcore-cüzdan-istemci": "^ 6.7.5", "ejs": "^ 2.6.1", "ekspres": "^ 4.16.4"}

Projenin arayüzü aşağıdaki gibidir:

Ardından, yukarıdaki bağımlı kitaplıkları izlemek için aşağıdaki komutu çalıştırın.

npm yükleme

İndirme tamamlandıktan sonra, tüm bağımlı kitaplıklar proje kök dizininde otomatik olarak oluşturulan node_modules klasörüne indirilecektir.

Dördüncü olarak, proje kaynak kodu

Projeyi aşağıdaki yapıya göre oluşturun.

1A0B838E-50E6-44FC-AB9B-3D95C6A467C7

index.js

Projenin giriş dosyası. Önce express.urlencoded, ejs, görünümler ve ara yazılım için statik yollar kaydedin ve hizmeti 3000 numaralı bağlantı noktasına bağlayın.

Her kelime sonu şunları içerir:

BWS_URL: bitcore-cüzdan sunucu adresi, biz bitpay adresini kullanıyoruz, ayrıca kendiniz bir cüzdan sunucusu da oluşturabilirsiniz.

networkType: Cüzdanın bağlı olduğu ağ tipi. Sırasıyla livenet ve testnet olarak ifade edilen resmi ağı ve test ağını destekler.

coinType: para birimi türü, sırasıyla Bitcoin ve Bitcoin Cash'i destekler ve şu şekilde ifade edilir: btc, bch.

copayerName: Cüzdanın sahibi, bir cüzdan oluşturmak için gerekli bir kelime, burada "lixu" sabitini belirtiyorum.

walletFilePath: Cüzdan oluşturulduktan sonra dışa aktarılan dosyanın saklama konumu.

Modeller / walletClient.js

Cüzdan model dosyasından sonra, bitcore-cüzdan istemcisini örnekleyen tek bir yöntem vardır.

let config = required ("../ config / config")

module.exports = {

getWalletClient: = > {

var Client = required ('bitcore-cüzdan-istemci');

var client = new Client ({

baseUrl: config.BWS_URL,

ayrıntılı: yanlış,

});

müşteriye dönüş

},

}

yönlendirici / yönlendirici.js

Yönlendirme dosyası.

let yönlendirici = gerektirir ('ekspres'). Yönlendirici;

router.get ("/ wallet.html", (req, res) = > {

res.render ("wallet.html");

})

module.exports = yönlendirici

utils / myUtils.js

Proje aracı sınıfı, başarı ve başarısızlık için ön uca döndürülen temel veri yapısını sağlar ve dizenin belirli bir dizeyle bitip bitmediğini belirler.

Referans

github ekspres: https://github.com/expressjs/express

ejs'in github'ı: https://github.com/tj/ejs

bitcore-cüzdan-istemcisinin github'u: https://github.com/bitpay/bitcore-wallet-client

Proje kaynak kodu Github adresi

CCTD Da-Qin Demiryolu: Bir enerji arteri inşa edin
önceki
CCTD 11 Eylül Kömür Piyasası Bilgileri Kısa Bilgi
Sonraki
Sadece konfor değil, aynı zamanda doku ile oynayın, Simma ile teknoloji + lüks kontrol deneyimine sahip olun
2017 Çin'in en büyük 500 şirketi açıklandı: Listedeki BATJ
En güzel sürücüsüz tur rotası başlıyor
Kentsel SUV'lar için hangi dört tekerlekten çekiş veya iki tekerlekten çekiş daha iyidir?
"Chengdu" Zhao Lei'yi yakaladı, Zhong Kun kabak halkasını ateşler mi?
Cima high-tech felsefeyi zorluyormuş gibi yapıyor, bu, hiçbir eski sürücünün oynamadığı bir şey
EOS oyunlarında "sınırsız okuma" büyük ödülü bekliyor: RAM tüketimi güvenlik açığı ve geri alma işlemi güvenlik açığı
Satışlar% 18,4 arttı, MPV'nin baharı mı geliyor?
Arabayla seyahat etmek için uzun bir yol var, özen göstermek kendini sevmek demektir
CCTD Çevre koruma, arzı ciddi şekilde kısıtlıyor, kısa vadeli kömür fiyatları yükselme eğiliminde ama asla düşmüyor
Emgrand GS en çok satan oldu, crossover SUV pazarın ana akımı mı olacak?
Başlangıç, bir numaralı oyuncu, Sunac'ın iki amiral gemisi kültür turizmi projesi bu yıl Haziran ayında açılacak
To Top