【发布时间】:2019-06-14 07:37:55
【问题描述】:
我是区块链新手。当我研究 Solidity 语言时,我无法弄清楚它最终是如何构成区块链的。 我可以将合同映射到一个类;但是每个实例都是一个链还是什么?
【问题讨论】:
标签: blockchain ethereum solidity
我是区块链新手。当我研究 Solidity 语言时,我无法弄清楚它最终是如何构成区块链的。 我可以将合同映射到一个类;但是每个实例都是一个链还是什么?
【问题讨论】:
标签: blockchain ethereum solidity
Solidity 和 Ethereum 之间的关系类似于 Objective-C 和 iPhone 之间的关系。前者是一种编程语言,用于编写在后者上运行的代码。
区块链的实际实现(数据结构、共识协议等)是用其他语言实现的(geth 是 Go,Parity 是 Rust)。
【讨论】:
当我学习solidity语言时,我无法弄清楚它最终是如何制作区块链的
Solidity 编程语言的唯一目的是允许在基于以太坊的区块链网络上开发 smart contracts。这些智能合约只是由区块链网络中的内部或外部参与者(分别为用户或其他代码)触发并由Ethereum Virtual Machine (EVM) 解释和执行的逻辑(代码)。
Solidity 不用于创建以太坊区块链网络。区块链网络必须已经存在,才能将智能合约逻辑部署到网络中。由于以太坊协议的明确性,任何multiple Ethereum clients 都可以创建以太坊区块链网络。
我可以将合约映射到一个类;但是每个实例都是一个链还是什么?
Solidity 中的Mappings 是一种类似于哈希映射的基本键/值数据结构。您可以将数据类型 X 的键映射到数据类型 Y 的值。Solidity 映射与区块链网络本身之间没有明确的关系。
每当调用智能合约函数时,随后会在区块链网络上创建一个transaction,它代表已执行的函数以及该函数的调用者。此交易被保存在区块链上,并作为已发生操作的不可变证据。
【讨论】: