什么是智能合约
前言
智能合约是在以太坊的EVM上运行的一段经过编译的代码。在这篇文章中我将详细阐述智能合约到底意味着什么,开发的时候有哪些需要思维模式的转变,如何避免踩坑等。
智能合约
智能合约与平时的代码其实没有什么区别,只是运行于一个以太坊这样的分布式平台上而已。这个运行的平台,赋予了这些代码不可变
,确定性
,分布式
和可自校验状态
等特点。代码运行过程中状态的存储,是不可变的。每一个人,都可以开一个自己的节点,重放整个区块链,将会获得同样的结果。
在以太坊中,每个合约都有一个唯一的地址来标识它自己。客户端可以与这个地址进行交互,可以发送接收ether,调用函数
,查询当前的状态
等。
智能合约,本质上来说就是代码,以及代码运行后存储到区块链上的状态两个元素组成。比如,你用来收发ETH的钱包,本质上就是一个智能合约,只是外面套了一个界面。
GAS是什么
既然提到了智能合约,就不得不提和他相伴的GAS
限制。智能合约
,就是一些代码,运行整个分布式网络中。由于网络中的每一个节点都是一个全节点。这样的好处是容错性强,坏处是效率低,消耗资源与时间。因为执行计算要花钱,而要执行的运算量与代码直接相关。所以,每个在网络运行的底层操作都需要一定量的gas。gas只是一个名字,它代表的是执行所需要花费的成本
。更详尽的请参考:《Calculating Costs in Ethereum Contracts》
开发智能合约意味着什么
开发智能合约意味着什么,或者说为什么我们要开发智能合约,这是一个需要思考的问题,通常的示例一般都是投票,竞价,代币等,这些但是这些例子总是让人很迷惑,为什么要用智能合约来实现这些东西,能不能实现一些有实际价值的,更通俗,与真正的合约
相关的内容。前面介绍了合约是什么,可能你们还是没有很清楚,合约可不可以等于合同,合同是不是具有约束性,能在双方(合同一般是双方或者多方)间提供约束,现在的智能合约是否具有法律约束。
我们需不需要智能合约
虽然现在区块链很火,但是我们必须要承认,他的应用面不是很广,只有少部分特定的行业适合使用。
合约开发方式
现在常用的语言是 solidity
类js语言,用用remix作为编辑,编译和调试的工具。或者本地使用文本编辑器编写代码,并保存为.sol 的文件,然后使用solcjs 工具将 源码编译为.abi .bin文件。

合约的部署方式
- 通过终端部署
- 通过web3js部署
- 通过JsonApi部署
引用
转载自:https://juejin.cn/post/6844903520664043534