《区块链DAPP开发入门、代码实现、场景应用》笔记2——Solidity实现简单的智能合约

简介: 通过阐述Solidity编程语言的API以及使用方式,使读者对智能合约编程有一个初步印象

 本节仅以一个简单的智能合约示例,介绍智能合约的基本组成元素,本合约定义一个uint类型的变量,以及对应这个变量的读写函数。

01     pragma solidity >=0.4.0 <0.6.0;                                     
02    
03     contract SimpleStorage {                                       //使用关键字contract定义合约结构体
04         uint storedData;                                                //定义一个变量
05    
06         function set(uint x) public {                                      //定义关于该变量的设置函数
07             storedData = x;                                       
08         }
09    
10         function get() public view returns (uint) {    //定义关于该变量的读取函数
11             return storedData;                                 
12         }
13     }

    代码第1行是指明语法解释使用的编译器版本;目前以太坊的智能合约虚拟机仍然在开发升级中,尚未有release版本,不同版本之间的API变动比较大,因此在编写智能合约时,必须指明合约逻辑使用的API的版本号;代码第3行通过contract关键字,声明了一个智能合约结构体,可以将该关键字与面向对象编程的class做类比,contract的设计模式和方法重载,父子继承等特性,与面向对象的设计非常接近,因此说Solidity作为一种高级的编程语言,极大的降低了对以太坊公链编程的难度,就像面向对象编程的Java语言比起汇编语言来讲,大幅降低了程序开发的门槛一样。

   代码第4行定义了一个成语变量,该变量的可见范围尽在constract的大括号之内;第6~7行代码定义了一个函数,该函数有可见范围的修饰符public,关于可见范围的详细解释放在第3章中,在此读者仅仅需要了解,该描述符说明该函数可以被区块链以外的系统通过Web 3.0接口调用,也可以通过以太坊内的其它智能合约调用。

代码10~12定义了一个读取函数,函数的可视范围也是public,但是这个函数因为没有修改区块链上的任何数据和状态,因此可以将该函数定义为view,类似于其他编程语言的readonly属性,同时在函数的最后定义了函数的返回类型

    这个智能合约相对简单,仅仅是将一个uint的数据保存在区块链分布式账本中的合约。任何账户都可以读写这个数据,本示例并没有对数据做任何访问限制,这意味着任何人,任何账户都可以读取和修改这个数据,在后面的章节中,会详细介绍数据的访问权限和安全性问题。

2020区块链各种应用都上马了,跟我一起学《区块链DAPP开发入门、代码实现、场景应用》吧。

19c39602dd538ac0

相关文章
|
14天前
|
供应链 物联网 区块链
新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
【8月更文挑战第29天】本文将探讨新兴技术的发展趋势和应用场景,包括区块链技术、物联网技术和虚拟现实技术。我们将从这些技术的基本原理出发,分析它们在各个领域的应用前景和挑战,并提供一些代码示例来说明如何使用这些技术。通过本文,读者将了解到这些新兴技术的强大潜力和无限可能。
|
13天前
|
供应链 物联网 区块链
新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
【8月更文挑战第30天】随着科技的不断进步,新兴技术如区块链、物联网、虚拟现实等正在改变我们的生活。本文将探讨这些技术的发展趋势和应用场景,以及它们如何影响我们的日常生活和工作。我们将通过代码示例来展示这些技术的实际运用,并讨论其未来的发展方向。让我们一起探索这些令人兴奋的技术吧!
|
13天前
|
机器学习/深度学习 自然语言处理 物联网
深度学习入门:从理论到实践新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
【8月更文挑战第30天】本文将介绍深度学习的基本原理和实践应用。我们将从深度学习的定义、历史和发展开始,然后深入探讨其工作原理和关键技术。接着,我们将通过一个简单的代码示例来展示如何实现深度学习模型。最后,我们将讨论深度学习在现实世界中的应用和挑战。无论你是初学者还是有经验的开发者,这篇文章都将为你提供深度学习的全面理解。
|
5天前
|
存储 供应链 安全
掌握未来:区块链技术的简易入门指南
想象一下,有一种魔法可以安全地储存你的财富和信息,不受任何中心化机构的控制。听起来像是幻想?其实不是!这就是区块链技术的魅力所在。本文将带你走进区块链的世界,了解它如何工作,以及为什么它可能改变我们的未来。无论你是完全的新手,还是对这项技术略知一二,这篇文章都将为你提供有价值的见解。
|
6天前
|
供应链 物联网 区块链
新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
【9月更文挑战第5天】随着科技的飞速发展,新兴技术如区块链、物联网、虚拟现实等正在改变我们的生活。本文将探讨这些技术的发展趋势和应用场景,以及它们如何影响我们的生活和工作。我们将通过实例和代码示例来深入了解这些技术的发展和应用。
22 5
|
10天前
|
供应链 物联网 区块链
|
13天前
|
供应链 监控 物联网
新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
【8月更文挑战第30天】随着科技的飞速发展,新技术如区块链、物联网、虚拟现实等正在改变我们的生活。这些技术不仅为我们提供了更便捷的生活体验,还为各行各业带来了革命性的变革。本文将对这些新兴技术的发展趋势和应用场景进行深入探讨,并给出代码示例。
|
16天前
|
物联网 区块链 vr&ar
新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
【8月更文挑战第27天】本文旨在探讨新兴技术的发展趋势和应用场景,特别是区块链技术、物联网技术和虚拟现实技术。我们将分析这些技术的基本原理,以及它们如何改变我们的生活和工作方式。我们将通过实例来展示这些技术的应用,并讨论它们对未来的影响。我们的目标是帮助读者更好地理解这些新兴技术,以便他们能够充分利用这些技术带来的机会。
|
19天前
|
供应链 物联网 区块链
新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
【8月更文挑战第24天】本文旨在探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景。我们将深入分析这些技术的基本原理,以及它们如何改变我们的生活和工作方式。同时,我们也将通过实例来展示这些技术的应用,并预测它们在未来可能的发展方向。
|
11天前
|
区块链 C# 存储
链动未来:WPF与区块链的创新融合——从智能合约到去中心化应用,全方位解析开发安全可靠DApp的最佳路径
【8月更文挑战第31天】本文以问答形式详细介绍了区块链技术的特点及其在Windows Presentation Foundation(WPF)中的集成方法。通过示例代码展示了如何选择合适的区块链平台、创建智能合约,并在WPF应用中与其交互,实现安全可靠的消息存储和检索功能。希望这能为WPF开发者提供区块链技术应用的参考与灵感。
25 0