从Java到区块链:如何成为区块链开发人员

最近这些天,区块链是每个开发人员的谈资。来自各个领域的许多软件开发商现在正试图进入区块链市场。我们与Mobilunity的区块链软件开发人员Eugene Kyselev 讨论了他是如何走出区块链开发方面的第一步的,希望对大家有所帮助。

JAXenter:Eugene,请告诉我们您在区块链开发方面的经验。你是怎么开始的?

Eugene Kyselev:说起来很平淡,一切都在正确的时间出现,对我来说,区块链开发是一个合乎逻辑的延续。我从JavaScript和其他框架开始,我想继续朝这个方向发展。几年前,随着各种ICO和采矿趋势的开始,我毫不犹豫地决定尝试区块链开发。

区块链开发现在正在以光速发展。区块链技术引起了政府和各国央行的注意;简而言之,一切都表明区块链前景光明。

JAXenter:你认为“区块链时代”将持续多久?

Eugene Kyselev:很难说,这就像问“全球化时代将持续多久?”

我认为,只要对加密货币和其他区块链解决方案的需求不断增加,就需要持续一段时间。所有的一切,每件事物都会经历自己的发展,最终出现了加密货币和各种ICO,我很确定现在就是“区块链时代”,区块链技术还有许多其他重要的发现和创新应用。可以带来整个行业的新突破。

JAXenter:为什么要将技术专长转变为区块链开发?

Eugene Kyselev:没有所谓的技术技能转变这样的东西。Blockchain使用常见的编程语言,如C++,Java,Python,Go。但是像Solidity这样的新技术也会出现。Solidity是一种面向对象的编程语言,用于为以太坊区块链平台开发智能合约。另一项有前途的技术是Hyperledger,一种由开源技术组成的区块链平台。Hyperledger允许你创建分布式分类帐或你自己的区块链框架。

JAXenter:许多开发人员都在问“你需要做些什么来成为区块链或加密货币开发人员?”你会推荐他们怎么做?

Eugene Kyselev:凭着坚强的意志,你可以实现并学习一切。作为快速指南,我推荐IBM Blockchain 101课程。但对于初学者来说,你必须具备扎实的算法和数据结构知识,最重要的是加密算法。如果你是区块链工程师,那么深入了解Java/C或Python/Go也是必须的。

如果你专注于开发智能合约,则需要具备JavaScript开发经验,下一步是掌握Solidity。

JAXenter:你如何开始Java编写区块链程序?

Eugene Kyselev:这很简单。以Hyperledger Fabric Chaincode为例,要开始使用,你需要以下工具:

  • Gradle
  • JDK
  • Vagrant

首先,启动chaincode部署:

1
peer chaincode deploy - l java - n map - p /opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/shim/java - c '{"Function": "init", "Args": ["a", "100", "b", "200"]}

然后,查询交易:

1
2
3
/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/shim/java $ peer chaincode invoke - l java \
- n 6d9a704d95284593fe802a5de89f84e86fb975f00830bc6488713f9441b835cf32d9cd07b087b90e5cb57a88360f90a4de39521a5595545ad689cd64791679e9 \
- c '{"Function": "transfer", "Args": [ "a", "b", "20"]}'

查询后,初始化变量“a”和“b”:

1
2
3
4
5
6
7
8
9
10
/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/shim/java $ peer chaincode query - l java \
- n 6d9a704d95284593fe802a5de89f84e86fb975f00830bc6488713f9441b835cf32d9cd07b087b90e5cb57a88360f90a4de39521a5595545ad689cd64791679e9 \
- c '{"Function": "query", "Args": ["a"]}'
{ "Name" : "a" , "Amount" : "80" }


/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/shim/java $ peer chaincode query - l java \
- n 6d9a704d95284593fe802a5de89f84e86fb975f00830bc6488713f9441b835cf32d9cd07b087b90e5cb57a88360f90a4de39521a5595545ad689cd64791679e9 \
- c '{"Function": "query", "Args": ["b"]}'
{ "Name" : "b" , "Amount" : "220" }

JAXenter:告诉我们更多关于Hyperledger,R3 DLT和Solidity的信息。

Eugene Kyselev:让我们从Hyperledger开始吧。如上所述,它是区块链应用程序的开源平台(中心)。总的来说,Hyperledger不支持比特币和其他加密货币。Hyperledger是一组旨在促进区块链应用程序开发的项目。

自从互联网出现以来,没有一种技术像这项技术那样具有前景和开创性。互联网和区块链可以一起使用,以创建新一代的交易性应用程序,在业务流程的核心创建信任,建立问责制和透明度。

R3 DLT不是一项技术,而是一个区块链联盟,其中包括100多家银行,金融机构,监管机构,专业机构,服务公司和技术公司。

目标是利用该平台探索区块链技术的可能性,区域链技术被认为是创新的,同时总结已建立的参与者的想法和数据,并使国际支付更快,更可靠。

Solidity是一种强烈的面向JavaScript的语言,旨在开发在以太坊虚拟机(EVM)中运行的智能合约。由于Solidity具有类似JavaScript的语法,因此我可以轻松快速掌握该语言。主要缺点是尚未实现该语言的完整版本。因此,它仍然具有相当有限的功能集,并且受到许多错误的困扰。

JAXenter:现在有很多关于区块链的炒作。这项技术可以解决哪些问题?

Eugene Kyselev

至少会对下面这些问题有很大的帮助:

1.确保银行存款的安全

每年,银行都会因欺诈而损失巨额资金。区块链具有几乎无可挑剔的安全性,可以帮助他们解决这个问题。转换到区块链钱包的银行客户由唯一标识号而不是名称标识。此外,他们使用私钥来获取资金。在他们的帮助下,只有他们的所有者可以处置资金——即使银行也无法获得这些资金。这些安全措施确保了比特币和其他加密货币的安全性,以便他们可以轻松保护存款。

区块链上的云存储将能够更好地抵御黑客攻击

云存储公司使用集中式服务器来存储数据。出于这个原因,黑客可以从中窃取信息的风险增加——通过访问服务器,黑客自动渗透到整个网络。一个区块链上的云存储可以分散地保护你的数据,并且它们的节点也会断开连接。因此,它们不易受到攻击,甚至攻击节点也不会破坏整个网络。

2.货物运输速度更快

在物流方面,需要正确,快速地组织货物运输。关键是能够在整个供应链中跟踪货物。借助区块链技术,这一过程将变得更加安全和透明。此外,在去中心化的连续的记录将减少人类的作用和延迟的可能性。

3.选举舞弊

选举欺诈,伪造签名和举行会议,而不通知所有成员是在公司治理中最普遍的问题。所有这些问题都通过区块链技术的整合得到部分解决。例如,它可以跟踪和计算投票,从而消除任何人的声音不会被计算或伪造的。相反,每个投票参与者将收到一个唯一的密钥来做出决定。

谢谢!

======================================================================

分享一些以太坊、EOS、比特币等区块链相关的交互式在线编程实战教程:

java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。

  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。

汇智网原创翻译,转载请标明出处。这里是原文