区块链编程与常规编程有何不同?

时间:2017-12-18 22:47:22

标签: blockchain

区块链似乎是新的热门话题,我很好奇它与程序员的观点有何不同。

如果我使用Solidity,那么我还是应用面向对象的原则吗?它与Ruby有何不同?不是面向合同的编程基本上就像面向对象的编程一样,但是涉及金钱(在Solidity,Ether的情况下)?

或许他们是相似的,只是区块链编程更加透明和安全,因为它是无信任的。

总而言之,我只想试着如何将目前的编程技巧转换为区块链。感谢。

1 个答案:

答案 0 :(得分:2)

我将假设您对编写公共区块链感兴趣,其中以太坊是最广泛可用的,因此"区块链编程"将参考公共区块链网络上的节目。

编制公共区块链网络时存在各种各样的问题:

  1. 不变性:这是公共区块链的礼物和诅咒。您提交给分类帐的任何内容都可以通过pull轻松修改。因此,在第一次尝试时必须格外小心。
  2. 安全性:您的代码可供全世界查看。这种透明度也为恶意行为者(或明显旺盛的初学者)打开了大门,造成重大伤害。请参阅THE DAOParity Hack
  3. 信任层:块链编程增加了额外的"信任层"到OSI模型。因此,大多数应用程序逻辑都是从区块链驱动的。然后,您需要使用另一个中间人(以太坊中的Web3)与应用层进行通信,然后将其插入体验层。
  4. 气体(或其等效物):对于以太坊,引入了气体的概念以防止"无限循环攻击" 。这提出了以下问题:(i)运行应用程序的成本变得非常昂贵(以太坊现在为820美元(ii)为此编程需要深入了解每个操作的计算成本。
  5. 直通:公共区块链要求将交易传播到整个网络。这会引入延迟,因为网络中的每个节点都必须运行您的操作。请参阅Cryto Kitties
  6. 这份清单并非详尽无遗,但我希望它能开始阐明这些差异,并为您的旅程提供帮助。

    参考文献: