资讯专栏INFORMATION COLUMN

如何写一个最简单的区块链小程序“Hello Blockstack”,内附详细blockstack教程

netScorpion / 1463人阅读

摘要:这是一个最简单的区块链小程序的搭建过程,这个程序不需要后端,也不需要用户进行注册数据库。

这是一个最简单的区块链小程序“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一个区块链“微博”程序

    摘要:工具教程在本教程中,我们将使用存储系统构建一个区块链微博应用程序,从而使用户提交的文字和图片没有发布到中心服务器中,而是在自己的本地电脑。 Blockstack.js 工具教程 在本教程中,我们将使用Gaia存储系统构建一个区块链微博应用程序,从而使用户提交的文字和图片没有发布到中心服务器中,而是在自己的本地电脑。此应用程序将是一个完全分散且无需服务器的access . js应用程序。...

    I_Am 评论0 收藏0
  • Blockstack正在测试区块链网络Stacks testnet

    摘要:程序员们在这个测试网络上可以尝试发送和接收使用购买域名和命名空间注册子域名使用我们的命令行工具是由功能完备的核心节点组成的,它允许您在区块链网络上上执行所有相同的操作。 showImg(https://segmentfault.com/img/bV92g9?w=1000&h=576); developers can experiment with: Sending and receiv...

    Gemini 评论0 收藏0
  • 区块链发展史

    摘要:秘猿科技区块链小课堂第期点击关注秘猿科技在思否的技术社区吧区块链发展史发展和成果众所周知,区块链发源于比特币这个项目,也可以说比特币是区块链的第一个应用。 区块链技术并不是一项凭空出世的神奇技术,而是站在前人几百年的研究基础之上,将多学科进行融合发展而成的一项技术。为了让大家能够明白区块链技术,到底是对哪些传统技术的融合和发展,秘猿科技区块链小课堂给大家带来了通俗易懂的第二篇文章,诉...

    kyanag 评论0 收藏0
  • 区块链开发中使用流行编程语言

    摘要:我们目前正处于一个新兴的区块链开发行业中。,一种在以太坊开发人员中流行的新的简单编程语言,因为它是用于开发以太坊智能合约的语言。它是全球至少万开发人员使用的世界上最流行的编程语言之一。以太坊,主要是针对工程师使用进行区块链以太坊开发的详解。 我们目前正处于一个新兴的区块链开发行业中。区块链技术处于初期阶段,然而这种颠覆性技术已经成功地风靡全球,并且最近经历了一场与众不同的繁荣。由于许多...

    2shou 评论0 收藏0
  • 追求极致设计理念!用 RISC-V 从头设计 CKB 虚拟机

    摘要:目前,比特币使用的是来进行交易签名,并且在共识协议中使用了哈希算法。尽管的实现提供的是最流行的加密算法,但我们鼓励社区提供更优化的加密算法实现以减少运行时开销。 Nervos 底层公链 CKB 的虚拟机(CKB-VM)是基于 RISC-V 指令集打造的区块链虚拟机。在上一堂分享中,我们简单介绍了区块链虚拟机,以及我们理想中的区块链虚拟机的样子。在本篇文章中,CKB-VM 设计者将详细的...

    he_xd 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<