简单的可靠性误解-如何/在哪里利用区块链?

时间:2019-04-02 09:46:54

标签: blockchain ethereum solidity

我对区块链有一个相当“新的”理解,我对它如何持久存储数据有比较好的把握。

我也对扎实的语法有所了解-对于已经熟悉OOP原理的人来说很容易理解。

我无法理解的是坚固性如何利用以太坊的区块链技术。

问题/秒

在我看来,Solidity看起来像是一种面向对象的编程语言,它在什么时候将数据持久保存到区块链上?

在示例看上去像类的情况下,什么表示“块”?这些类的每个实例都是“块”吗?

上下文:

我要使用的可靠性示例:https://solidity.readthedocs.io/en/v0.5.6/solidity-by-example.html

2 个答案:

答案 0 :(得分:1)

区块链中的一个区块是关于交易的信息分类账。因此,无论何时存储数据,它都将作为事务写入块中。

在编译后编写统一代码时,将创建abi文件和字节码。在区块链中,我们存储字节码文件而不是实体代码。而在Web3库的帮助下,使用ABI文件与智能合约进行交互。可以添加solidity代码作为一种良好的编程习惯,但这不是必需的。

部署智能合约后,您将获得访问与智能合约进行交互的地址。

现在,每当您可靠地更新变量的值时,它将视为事务,并且该事务将存储在下一个块中。

我希望现在对你清楚。

感谢smarx和jfc进行纠正:)

答案 1 :(得分:0)

  

它在什么时候将数据持久保存到区块链上?

智能合约具有控制数据更改方式的规则(功能)。每当您发出函数调用时,就在生成事务。此事务是更改(或不更改)SC数据的操作。

  

在示例看上去像类的情况下,什么表示“块”?这些类的每个实例都是“块”吗?

交易被打包在区块内,一个区块可以有多个交易在不同的SC或ETH账户(钱包)中进行。 SC与块之间的关系与任何应用程序的代码与您的数据库软件的工作方式之间的关系相同……主要是没有关系。

这是:区块是区块链存储数据的方式。 SC是说明您的数据如何更改的规则。

  

每个块都是属于合同的所有属性的“版本”吗?

不。区块是一组交易。交易是一项更改数据的操作。

  

每个区块都有一个智能合约的实例

不。仅当将智能合约部署到网络时,才在进入一个块的特殊事务中发送已编译SC字节码的完整副本。即使在这种情况下,区块内也会有更多不同的交易。

  

智能合约几乎就像一个在区块链中获取和设置数据的API?

就这样

  

智能合约本质上等同于我可以选择自己编写的中间件

但是在谈论以太坊时,目前别无选择:只有坚固性代码(还有另外两种语言,但我认为它们几乎不被使用)。