Blockchain Nanodegree 补充资源(随时更新)

本文介绍LevelDB轻量级持久化库及其在不同平台的绑定,探讨JavaScript Promises规范与ES6特性,演示使用npm淘宝镜像、VSCode与ESLint进行项目配置与代码验证,包括区块链实例的创建、测试与错误注入,最后提供资源链接如Postman、CURL等工具,用于Web服务测试。
摘要由CSDN通过智能技术生成

LevelDB

http://leveldb.org/

A light-weight, single-purpose library for persistence with bindings to many platforms.

JavaScript Promises规范

https://cn.udacity.com/course/javascript-promises--ud898

JavaScript ES6

https://cn.udacity.com/course/es6-javascript-improved--ud356

npm 淘宝镜像

npm install --registry=https://registry.npm.taobao.org
alias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"

IDE: VSCode

  • globally installed ESlint
  • change window scale under preference-settings
  • change font to 16pt under ppreference-settings

Configuring your project

  • Use NPM to initialize your project and create package.json to store project dependencies.
npm init
  • Install crypto-js with --save flag to save dependency to our package.json file
npm install crypto-js --save
  • Install level with --save flag
npm install level --save

Testing

To test code:
1: Open a command prompt or shell terminal after install node.js.
2: Enter a node session, also known as REPL (Read-Evaluate-Print-Loop).

node

3: Copy and paste your code into your node session
4: Instantiate blockchain with blockchain variable

let blockchain = new Blockchain();

5: Generate 10 blocks using a for loop

for (var i = 0; i <= 10; i++) {
  blockchain.addBlock(new Block("test data "+i));
}

6: Validate blockchain

blockchain.validateChain();

7: Induce errors by changing block data

let inducedErrorBlocks = [2,4,7];
for (var i = 0; i < inducedErrorBlocks.length; i++) {
  blockchain.chain[inducedErrorBlocks[i]].data='induced chain error';
}

8: Validate blockchain. The chain should now fail with blocks 2,4, and 7.

blockchain.validateChain();

Blockchain explorer

https://bitcoin.org/en/developer-glossary#section

Blockchain Developer Glossary

https://bitcoin.org/en/developer-glossary#section

JavaScript Promise

https://developers.google.com/web/fundamentals/primers/promises

Testnet:

https://en.bitcoinwiki.org/wiki/Testnet

Developer Test Application Examples

https://bitcoin.org/en/developer-examples#testing-applications

Bitcoin TestNet Sandbox Faucet

http://bitcoinfaucet.uo1.net/

Resources for Web Services

Need a review for Web Services or Javascript? Checkout these courses:

Postman

POSTMAN is an application that allow you to test your endpoints with Graphical User Interface application.

To install Postman, go to Postman, and download & install the appropriate package for your OS.

Once you have it installed locally in your computer let’s do this test:

Open Postman and paste: https://maps.googleapis.com/maps/api/directions/json?origin=Florence&destination=Milan&waypoints=Genoa|Bologna|Venice&optimizeWaypoints=true&key=[YOUR_API_KEY]

Then, check the parameters in the param button and hit SEND option. The application make the request and should show you the response from the server api like it is showed in the video below.

https://s3.cn-north-1.amazonaws.com.cn/u-vid-hd/0LSjbIaQq0E.mp4

Documentation: https://www.getpostman.com/docs/v6/

CURL

CURL is used in command lines or scripts to transfer data, so it can be used to test our RESTful APIs.

Let’s check a quick example:

curl -X GET \
  https://jsonplaceholder.typicode.com/todos/1 \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/x-www-form-urlencoded' \

https://s3.cn-north-1.amazonaws.com.cn/u-vid-hd/9ctIhoEhsSs.mp4

Free Curl Book: https://curl.haxx.se/book.html

CSS and HTMLs

JSON

JavaScript Object Notation. JSON is a popular and simple format for storing and transferring nested or hierarchal data. It’s so popular that most other programming languages have libraries capable of parsing and writing JSON (like Python’s JSON library). Internet GET and POST requests frequently pass data in JSON format. JSON allows for objects (or data of other types) to be easily encapsulated within other objects. See the MDN or JSON.org for more details.

This is a fantastic deep dive from Jason Lengstorf about JSON and its ubiquitous use in the form of AJAX requests.

Why should I lint my JSON?

With a mix of nested curly braces, square brackets and commas, it’s easy to make mistakes with JSON. And mistakes mean bugs. Seriously, I mess up JSONs all the time. You might even be able to spot a bug in one of my JSONs in a video in this course…

If you’re generating JSON by hand, you should copy and paste your code into a JSON linter like jsonlint.com to quickly and easily find syntax errors. A linter is a piece of software that analyzes code for syntax errors. Some text editors, like Sublime Text, will automatically lint (or highlight) most syntax errors. But a JSON linter won’t miss any syntax errors and you can rest assured that your JSONs will be properly formatted.

DOM

https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model

Nmap

You’ll also need to install ncat, which is part of the Nmap network testing toolkit. We’ll be using ncat to investigate how web servers and browsers talk to each other.

To check whether ncat is installed and working, open up two terminals. In one of them, run ncat -l 9999 then in the other, ncat localhost 9999. Then type something into each terminal and press Enter.

To exit the ncat program, type Control-C in the terminal. If you exit the server side first, the client should automatically exit. This happens because the server ends the connection when it shuts down.

You’ll be learning much more about the interaction between clients and servers throughout this course.

13 Node.js frameworks

https://nordicapis.com/13-node-js-frameworks-to-build-web-apis/

Framework Homepages

Expressjs.com

Sailsjs.com

Hapijs.com

Express.js Conclusion

This is an extremely powerful framework and there are many resources to help you get started. If you’re interested in learning more, they provide a great list of books and blogs on their site here.

Also, each of the modules along with their documentation are listed here.

Sails.js Conclusion

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值