摘要:這是一個最簡單的區塊鏈小程序的搭建過程,這個程序不需要后端,也不需要用戶進行注冊數據庫。
這是一個最簡單的區塊鏈小程序“Hello Blockstack”的搭建過程,這個程序不需要后端api,也不需要用戶進行注冊數據庫。
在這篇教程中我們會用到下面的工具:
npm to manage dependencies and scripts
browserify to compile node code into browser-ready code
blockstack.js to authenticate the user and work with the user"s identity/profile information
第一步:安裝yeoman
npm install -g yo generator-blockstack
第二步:給程序創建一個新的目錄
mkdir hello-blockstack && cd hello-blockstack
yo blockstack
第三步:運行
npm run start
主要的代碼注釋和理解:
主要的文件是 app.js (在/public 文件夾里面),代碼被包括在監聽事件里面,直到dom內容加載完成
document.addEventListener("DOMContentLoaded", function(event) { })
在這個里面,我們有一個signin handler來處理用戶的請求和進入
document.getElementById("signin-button").addEventListener("click", function() { blockstack.redirectUserToSignIn() })
我們也有一個signout handler 來進行處理用戶的推出
document.getElementById("signout-button").addEventListener("click", function() { blockstack.signUserOut(window.location.origin) })
下一步,我們有一個函數來顯示用戶的簡歷
function showProfile(profile) { var person = new blockstack.Person(profile) document.getElementById("heading-name").innerHTML = person.name() document.getElementById("avatar-image").setAttribute("src", person.avatarUrl()) document.getElementById("section-1").style.display = "none" document.getElementById("section-2").style.display = "block" }
有三種狀態可以讓用戶登錄
The user is already signed in
The user has a sign in request that is pending
The user is signed out
代碼表達方式
if (blockstack.isUserSignedIn()) { // Show the user"s profile } else if (blockstack.isSignInPending()) { // Sign the user in } else { // Do nothing }
在用戶請求的過程中
if (blockstack.isUserSignedIn()) { var profile = blockstack.loadUserData().profile showProfile(profile) } else if (blockstack.isSignInPending()) { blockstack.handlePendingSignIn().then(function(userData) { window.location = window.location.origin }) }
程序顯示樣式的控制文件:
控制這個程序顯示樣式的文件是 (/public/manifest.json)
{ "name": "Hello, Blockstack", "start_url": "localhost:5000", "description": "A simple demo of Blockstack Auth", "icons": [{ "src": "https://helloblockstack.com/icon-192x192.png", "sizes": "192x192", "type": "image/png" }] }
源代碼實現:
git init
git add . && git commit -m "first commit"
然后去github添加一個新的repo
https://github.com/new
git remote add origin git@github.com:YOUR_USERNAME_HERE/hello-blockstack.git
git push origin master
加入到blockstack社區中來:https://contribute.blockstack...
下載blockstack:https://blockstack.org/install
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24051.html
摘要:工具教程在本教程中,我們將使用存儲系統構建一個區塊鏈微博應用程序,從而使用戶提交的文字和圖片沒有發布到中心服務器中,而是在自己的本地電腦。 Blockstack.js 工具教程 在本教程中,我們將使用Gaia存儲系統構建一個區塊鏈微博應用程序,從而使用戶提交的文字和圖片沒有發布到中心服務器中,而是在自己的本地電腦。此應用程序將是一個完全分散且無需服務器的access . js應用程序。...
摘要:程序員們在這個測試網絡上可以嘗試發送和接收使用購買域名和命名空間注冊子域名使用我們的命令行工具是由功能完備的核心節點組成的,它允許您在區塊鏈網絡上上執行所有相同的操作。 showImg(https://segmentfault.com/img/bV92g9?w=1000&h=576); developers can experiment with: Sending and receiv...
摘要:我們目前正處于一個新興的區塊鏈開發行業中。,一種在以太坊開發人員中流行的新的簡單編程語言,因為它是用于開發以太坊智能合約的語言。它是全球至少萬開發人員使用的世界上最流行的編程語言之一。以太坊,主要是針對工程師使用進行區塊鏈以太坊開發的詳解。 我們目前正處于一個新興的區塊鏈開發行業中。區塊鏈技術處于初期階段,然而這種顛覆性技術已經成功地風靡全球,并且最近經歷了一場與眾不同的繁榮。由于許多...
摘要:目前,比特幣使用的是來進行交易簽名,并且在共識協議中使用了哈希算法。盡管的實現提供的是最流行的加密算法,但我們鼓勵社區提供更優化的加密算法實現以減少運行時開銷。 Nervos 底層公鏈 CKB 的虛擬機(CKB-VM)是基于 RISC-V 指令集打造的區塊鏈虛擬機。在上一堂分享中,我們簡單介紹了區塊鏈虛擬機,以及我們理想中的區塊鏈虛擬機的樣子。在本篇文章中,CKB-VM 設計者將詳細的...
閱讀 1014·2021-11-22 14:56
閱讀 975·2021-11-11 16:54
閱讀 7555·2021-09-23 11:55
閱讀 3000·2021-09-22 15:57
閱讀 2787·2021-08-27 16:25
閱讀 667·2019-08-30 15:55
閱讀 1657·2019-08-30 15:43
閱讀 1592·2019-08-30 14:23