摘要:这是一个最简单的区块链小程序的搭建过程,这个程序不需要后端,也不需要用户进行注册数据库。
这是一个最简单的区块链小程序“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
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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 设计者将详细的...
阅读 994·2021-11-22 14:56
阅读 942·2021-11-11 16:54
阅读 7088·2021-09-23 11:55
阅读 2955·2021-09-22 15:57
阅读 2772·2021-08-27 16:25
阅读 653·2019-08-30 15:55
阅读 1640·2019-08-30 15:43
阅读 1577·2019-08-30 14:23