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ı
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.
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.
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