如何成为一名区块链开发者

Posted 高可用架构

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何成为一名区块链开发者相关的知识,希望对你有一定的参考价值。

constructor() return new Block(0, "01/01/2017", "Genesis block", "0"); return new Block(0, "01/01/2017", "Genesis block", "0");


第二部分:添加区块


首先,我们需要知道当前区块链中最新一个区块是什么。为此,我们使用 getLatestBlock() 函数。


  • getLatestBlock() 

    return this.chain[this.chain.length - 1];

    Now that we have determined the latest block, let’s see how we are going to add new blocks.
    addBlock(newBlock)
    newBlock.previousHash = this.getLatestBlock().hash;
    newBlock.hash = newBlock.calculateHash();
    this.chain.push(newBlock);


    那么,这里发生了什么?我们是如何添加区块的?我们如何检查给定的区块是否有效?


    还记得一个区块的内容吗?每个区块有前一个区块的哈希值,对吗?


    所以,我们在这里要做的很简单。将新出块的 previousHash 与最后一个区块哈希值进行比较。


    如果这两个值相匹配,那么就意味着新的区块是合法的,它被添加到区块链中。


    第三部分:验证链


    现在,我们需要检查没有人对我们的区块链进行破坏,一切都很稳定。


    我们使用 for 循环从区块1到最后一个区块。创世区块是区块 0。


  • for (let i = 1; i < this.chain.length; i++)

    const currentBlock = this.chain[i];
    const previousBlock = this.chain[i - 1];

    In this part of the code we are defining two terms, current block and previous block. And now we are simply going to find the hash of these two values.
    if (currentBlock.hash !== currentBlock.calculateHash())
    return false;

    if (currentBlock.previousHash !== previousBlock.hash)

    return false;


    return true;


    如果当前区块的 previousHash 不等于前一个区块的 Hash,那么这个函数将返回 False,否则将返回 True。


    使用区块链


    现在,我们终于要使用区块链来创建我们的 BlockGeeksCoin 了。


  • let BlockGeeksCoin = new Blockchain(); 
    BlockGeeksCoin.addBlock(new Block(1, "20/07/2017", amount: 4 ));
    BlockGeeksCoin.addBlock(new Block(2, "20/07/2017", amount: 8 ));


    就是这样!


    那么这里发生了什么?


    我们基于区块链创建了一个新的加密货币,并将其命名为BlockGeeksCoin。通过调用这个新对象,我激活了构造函数,进而自动创建了创世区块。


    我们只需再给它添加两个区块,并给它们一些数据。


    就是这么简单。


    这个里程碑就到此为止了。让我们看看行动计划。它非常简单,但肯定也不容易。


  • 在众多的区块链友好语言中选择一种进行学习,比如 C++,javascript,C#,Go 等。


  • (由于篇幅关系,今天先发布第一部分,接下来合约部分敬请期待,着急的读者也可以阅读英文版了解全文)


    英文全文:
    https://blockgeeks.com/guides/blockchain-developer/


    参考阅读:

  • 微服务架构中的熔断器设计与实现( Golang 版)

  • API 分页设计与实现

  • Rust 和 C 性能对比:排序

  • 白话高并发中的协程

  • 使用Go语言从零编写PoS区块链

  • 使用Go语言编写区块链P2P网络


  • 本文由高可用架构翻译,技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。


    高可用架构
    改变互联网的构建方式

    如何成为一名区块链工程师? | 附学习资源

    编译 | 区块链大本营

    参与 | 鸽子、何永灿、Shawn



    春节前后,区块链再次刷爆我们的朋友圈,关注区块链的人正在以几何数集上升。大潮来临,一切都不同了,身怀绝技的程序员有了大展宏图的历史性机会,程序员们,是时候,毅然决然,懂点区块链技术了。


    本文列举了关于区块链和数字加密技术的文章和资源,分为以下几个部分:构建区块和基础;基础(和历史);关键概念——包括特定课题(例如区块链治理);隐私和安全;扩展;共识算法、加密货币经济和投资;资金筹集和通证分布;去中心化交易所;稳定货币;加密货币经济原生产品(数字加密收藏品、管理市场、游戏)。最后,文章还提供了开发者教程、实践教程和人物事迹,以及其他资源,例如时事新闻和课程。干货满满哦!



    构建区块和基础


    区块链是啥?——回答其定义之前先理解它解决什么问题

    Mohit Mamoria

    https://hackernoon.com/wtf-is-the-blockchain-1da89ba19348


    想知道比特币(和其他加密货币)的工作原理吗?

    3Blue1Brown

    https://youtu.be/bBC-nXj3Ng4


    比特币协议的工作原理

    Michael Nielsen

    http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/


    25分钟了解以太坊

    Vitalik Buterin

    https://youtu.be/66SaEDzlmP4


    以太坊的工作原理:绕过复杂的数学解释以太坊在技术层面上的工作原理

    Preethi Kasireddy

    https://medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369


    从比特币到区块链再到ICO,带您解开加密货币的奥秘

    Alex Rampell

    https://a16z.com/2017/12/08/summit-crypto-alex-rampell/


    加密哈希函数:加密哈希函数的定义、属性……

    Khan Academy

    https://youtu.be/0WiTaBI82Mc


    区块链入门:账本基础知识,区块链的重要性

    Chris Berg、Sinclair Davidson、and Jason Potts

    https://medium.com/@cryptoeconomics/the-blockchain-economy-a-beginners-guide-to-institutional-cryptoeconomics-64bf2f2beec4


    以太坊基本术语:从gas到dapps(分布式应用)

    Matt Condon

    https://medium.com/@mattcondon/getting-up-to-speed-on-ethereum-63ed28821bbe


    区块链及加密货币基本术语库:部分术语附简短定义

    https://tangelo.co/insights/blog/techs-must-have-reference-guide-to-blockchain-and-cryptocurrency


    加密资产入门指南系列:从以太坊到莱特币

    Linda Xie

    https://medium.com/@linda.xie/beginners-guide-series-on-cryptoassets-d897535d887 



    基础与历史


    比特币白皮书(2009):一种点对点的电子现金系统

    中本聪

    https://bitcoin.org/bitcoin.pdf


    以太坊白皮书(2013+):下一代智能合约和去中心化应用平台

    Vitalik Buterin等人

    https://github.com/ethereum/wiki/wiki/White-Paper


    拜占庭将军问题(1982)

    Leslie Lamport、Robert Shostak、Marshall Pease

    https://people.eecs.berkeley.edu/~luca/cs174/byzantine.pdf


    Agoric论文系列(1988)

    Mark Miller and K. Eric Drexler

    https://e-drexler.com/d/09/00/AgoricsPapers/agoricpapers.html


    智能合约理念(1997)

    Nick Szabo

    http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html


    比特币为何如此重要(2014)

    Marc Andreessen

    https://dealbook.nytimes.com/2014/01/21/why-bitcoin-matters/


    比特币的学术渊源(2017)

    Arvind Narayanan and Jeremy Clark

    https://queue.acm.org/detail.cfm?id=3136559



    重要概念


    漫谈比特币泡沫

    Steven Johnson

    https://www.nytimes.com/2018/01/16/magazine/beyond-the-bitcoin-bubble.html


    加密通证:开放式网络设计的一个突破

    Chris Dixon

    https://medium.com/@cdixon/crypto-tokens-a-breakthrough-in-open-network-design-e600975be2ef 


    加密通证和协议创新时代的到来

    Albert Wenger

    http://continuations.com/post/148098927445/crypto-tokens-and-the-coming-age-of-protocol 


    “胖”协议

    Joel Monegro

    https://www.usv.com/blog/fat-protocols 


    加密货币、应用货币及协议投资

    Olaf Carson-Wee、Chris Dixon和Sonal Chokshi

    https://a16z.com/2017/04/03/cryptocurrencies-protocols-appcoins/


    让应用用于大众

    Juan Benet and Chris Dixon

    https://a16z.com/2017/09/14/networks-protocols-labs-tokens/


    区块链:好在哪里: 包括智能合约

    Ed Felten

    http://freedom-to-tinker.com/2018/02/26/blockchain-what-is-it-good-for/


    美国政府如何利用区块链打击诈骗

    Kathryn Haun

    https://youtu.be/507wn9VcSAE 


    Bitcoin network effects比特币网络效应

    Elad Gil

    http://blog.eladgil.com/2017/12/bitcoin-network-effects_11.html


    管理员:维护区块链网络的工作者如果设计合理的话,通证可以通过激励预期行为发挥驱动网络效应的作用

    Ryan Zurrer

    https://medium.com/@rzurrer/keepers-workers-that-maintain-blockchain-networks-a40182615b66


    加密货币背后的主人:Nick Szabo对话Naval Ravikant

    Tim Ferris

    https://tim.blog/2017/06/04/nick-szabo/


    加密通证为何重要

    Fred Ehrsam、Chris Dixon

    https://a16z.com/2017/09/28/cryptocurrencies-networks-tokens/


    比特币为什么难以“获得”:区块链世界

    Dhruv Bansal

    https://blog.unchained-capital.com/blockchain-spectrum-806847e1c575


    金钱、区块链和社会可扩展性

    Nick Szabo

    http://unenumerated.blogspot.com/2017/02/money-blockchains-and-social-scalability.html


    如何理解“区块链是无情的”?

    Preethi Kasireddy

    https://medium.com/@preethikasireddy/eli5-what-do-we-mean-by-blockchains-are-trustless-aa420635d5f6 


    去中心化为什么重要:从因特网时代到加密网络时代

    Chris Dixon

    https://medium.com/@cdixon/why-decentralization-matters-5e3f79f7638e


    去中心化的含义:去中心化是指什么?细微差别,深度

    Vitalik Buterin

    https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274


    量化去中心化:我们必须在能够改进去中心化之前实现对区块链去中心化的衡量

    Balaji Srinivasan、Leland Lee

    https://news.earn.com/quantifying-decentralization-e39db233c28e


    区块链的真相:给出区块链应用框架,帮助大企业高管理解区块链发展状态;战略投资;挑战,资源和区块链应用流程

    Marco Iansiti、Karim Lakhani

    https://hbr.org/2017/01/the-truth-about-blockchain


    企业的慢速死亡

    Nick Tomaino

    https://thecontrol.co/the-slow-death-of-the-firm-1bd6cc81286b


    以太坊的创造者Vitalik Buterin——思想大解放:区块链和加密货币世界的奇思妙想

    Laura Shin

    https://itunes.apple.com/us/podcast/unchained-big-ideas-from-worlds-blockchain-cryptocurrency/id1123922160


    理解通证的思维模式

    Nick Tomaino、Chris Dixon

    https://a16z.com/2018/01/21/mental-models-tokens-crypto-trends/



    区块链治理


    非理性通证持有者的迷思:为什么区块链治理不属于任何现有模型

    Kathleen Breitman

    https://medium.com/@kathleenbreit/the-myth-of-the-irrational-token-holder-c12438709afd 


    区块链治理:设计组件、方法、建议

    Fred Ehrsam

    https://medium.com/@FEhrsam/blockchain-governance-programming-our-future-c3bfe30f2d74


    反对链上治理:反驳(及批判)上文

    Vlad Zamfir

    https://medium.com/@Vlad_Zamfir/against-on-chain-governance-a4ceacd040ca


    论区块链治理和网络效应

    Luke Duncan

    https://blog.aragon.one/thoughts-on-governance-and-network-effects-f40fda3e3f98


    区块链治理笔记

    Vitalik Buterin

    http://vitalik.ca/general/2017/12/17/voting.html


    自我进化的加密账本:Tezos论文

    Arthur、Kathleen Breitman

    https://www.tezos.com/static/papers/position_paper.pdf



    隐私和安全


    区块链的隐私问题

    Vitalik Buterin

    https://blog.ethereum.org/2016/01/15/privacy-on-the-blockchain/


    保护智能协议(系列):Solidity的6个漏洞隐患以及如何避免

    来源:Loom

    https://medium.com/loom-network/how-to-secure-your-smart-contracts-6-solidity-vulnerabilities-and-how-to-avoid-them-part-1-c33048d4d17d

    https://medium.com/loom-network/how-to-secure-your-smart-contracts-6-solidity-vulnerabilities-and-how-to-avoid-them-part-2-730db0aa4834


    以太坊智能协议最佳实践

    ConsenSys Diligence

    https://consensys.github.io/smart-contract-best-practices/


    Town Crier:智能协议的一个经验证的数据馈送系统

    Fan Zhang、Ethan Cecchetti、Kyle Croman、Ari Juels、Elaine Shi

    https://eprint.iacr.org/2016/168.pdf


    Devcon3专家组对形式化验证的讨论

    Phil Daian、Everett Hildenbrandt、Yoichi Hirai、Loi Luu, 主持人:Reto Trinkler

    https://youtu.be/DrDIcirrhWM


    zk-SNARKs是什么?

    Jay Graber

    https://z.cash/technology/zksnarks.html


    Zk-SNARKs背后的技术(系列):掌握zk-SNARKs(全称 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,即"简明非交互零知识证明")的基础知识

    Vitalik Buterin

    https://medium.com/@VitalikButerin/zk-snarks-under-the-hood-b33151a013f6


    可应用于多种场景(从可验证计算到保护隐私的加密货币)的通用技术

    Vitalik Buterin

    https://vitalik.ca/general/2017/11/09/starks_part_1.html


    可扩展、透明、后量子加密计算完整性:用透明的zk-SNARKs (zk-STARKs)解决个人隐私和机构诚信之间的冲突

    Eli Ben-Sasson, Iddo Bentov, Yinon Horesh, and Michael Riabzev

    https://eprint.iacr.org/2018/046.pdf


    简洁非交互式零知识证明的冯诺伊曼体系结构

    Eli Ben-Sasson、Alessandro Chiesa、Eran Tromer和Madars Virza

    https://eprint.iacr.org/2013/879.pdf



    扩展


    区块链无法扩展:至少现在不能,但是有希望

    Preethi Kasireddy

    https://hackernoon.com/blockchains-dont-scale-not-today-at-least-but-there-s-hope-2cb43946551a


    扩展不可靠计算的模型

    Kyle Samani

    https://multicoin.capital/2018/02/23/models-scaling-trustless-computation/


    平台货币不久将被淘汰:笔者认为五年之内市值最高的加密货币将成为一种应用通证

    Aleksandr Bulkin

    https://blog.coinfund.io/platform-currencies-may-soon-be-obsolete-78d9b263d902


    Layer 2的重要性:比特币和区块链的一个超文本传送协议(HTTP)

    Elizabeth Stark

    https://youtu.be/3PcR4HWJnkY


    闪电网络是什么,如何用它扩展比特币?

    by Elizabeth Stark

    https://coincenter.org/entry/what-is-the-lightning-network


    理解以太坊Layer 2的扩展方法:状态通道、Plasma和Truebit

    Josh Stark

    https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4


    扩展Tezos:用递归SNARKs(知识的简洁非交互式零知识证明)进行扩展

    Arthur Breitman

    https://hackernoon.com/scaling-tezo-8de241dd91bd


    以太坊基金研究项目:纯研究和应用研究领域的主要课题

    Ethereum Foundation

    http://notes.eth.sg/CwIwZgbAjADAxgUwLQEMUIKxOCsWCcIEwShAHCgEwJj4qyVA


    以太坊可扩展性研究和开发补贴计划

    Vitalik Buterin

    https://blog.ethereum.org/2018/01/02/ethereum-scalability-research-development-subsidy-programs/


    以太坊入门指南

    Tendermint

    https://blog.cosmos.network/a-beginners-guide-to-ethermint-38ee15f8a6f4


    plasma链0x1的构造

    David Knott

    https://blog.omisego.network/construction-of-a-plasma-chain-0x1-614f6ebd1612


    以太坊中的账户、交易、gas和区块gas限制

    Hudson Jameson

    https://hudsonjameson.com/2017-06-27-accounts-transactions-gas-ethereum/


    Interplanetary linked计算:将Merkle计算从区块链计算场(computational courts)中分离出来:

    Simon de la Rouviere

    https://media.consensys.net/interplanetary-linked-computing-separating-merkle-computing-from-blockchain-computational-courts-1ade201ecf8a


    以太坊分片:概述和最终确定性

    Hsiao-Wei Wang

    https://medium.com/@icebearhww/ethereum-sharding-and-finality-65248951f649



    区块链技术如何成为中国数字化转型最新驱动力

    区块链开发

    下一个颠覆的领域:区块链如何影响审计行业?(中)

    下一个颠覆的领域:区块链如何影响审计行业?(上)

    下一个颠覆的领域:区块链如何影响审计行业?(下)

    区块链技术何以成为中国数字化转型最新驱动力?