加密财富
加密财富

欢迎大家关注,订阅,点赞,或者送我喝咖啡 K 说区块链专注于项目的研究,DEFI,NFT notion 文档:https://www.notion.so/9554b61a541947878530e758546bb021?v=3d170991ec5b4c35b46212f151d7f638

(solidity合约篇)详解 web3 跟 web2, Solidity 入门合约编程 Hello World,以及工具使用

(solidity合约篇)详解 web3 跟 web2, Solidity 入门合约编程 Hello World,以及工具使用

https://mp.weixin.qq.com/s?__biz=MzU2NTc1MTc5MQ==&mid=2247497940&idx=1&sn=6543e05950ab23c547421ebd57b7b13b&chksm=fcb44254cbc3cb428f461e664a9dd8e9e6c54a414e829e74b711efe552f4589f4d4552b26773&token=1786973611&lang=zh_CN#rd

文章有四个重点

  1. 什么是 web3

  2. 什么是 web2

  3. 有啥本质区别

  4. 怎么入门 合约编程


首先讲我们最熟悉,也是现在目前正在使用的 web2,上网查了下百度百科全书对 web2 定义如下

Web2.0是相对于Web1.0 的新的时代。指的是一个利用Web的平台,由用户主导而生成的内容互联网产品 模式,为了区别传统由网站雇员主导生成的内容而定义为第二代互联网,web2.0是一个新的时代。  [1]   抛开纷繁芜杂的Web 2.0现象,进而将其放到科技发展与社会变革的大视野下来看,Web 2.0可以说是信息技术发展引发网络革命所带来的面向未来、以人为本的创新2.0 模式在互联网领域的典型体现,是由专业人员织网到所有用户参与织网的创新民主化进程的生动注释。

个人感觉维基百科比较权威,比较全面

https://zh.wikipedia.org/zh-sg/Web_2.0

Web 2.0(也称为参与式网络[1]或社交网络[2]),指以最终用户为目标,强调用户生成内容、易用性、参与文化和互操作性(如:与其它产品、系统和设备兼容)的网站。

Web 2.0这个词由达西·迪努奇在1999年撰写的文章《Fragmented Future》中首次创造并使用,直到2004年末的O'Reilly Media Web 2.0会议上,才由蒂姆·奥莱理和戴尔·多尔蒂推广我们现在所定义的概念。[3][4][5][6]Web 2.0框架只指定网站的设计和使用,并不对设计人员提出任何技术要求或规范。因为转变到Web 2.0的过程是渐进的,并没有给出这种转变开始的确切日期。

Web 2.0网站允许用户作为虚拟社区中用户生成内容的创建者,并通过社会媒体的对话进行交互和协作。这与第一代网络(Web 1.0)时代的网站形成了对比,在Web 1.0时代,人们只能被动地浏览内容。Web 2.0功能的示例,包括:社交网站或社会媒体站点(如:Facebook)、部落格、Wiki、分众分类法(在网站和链接上的关键词“标签”)、视频分享网站(如:YouTube)、托管服务、网络应用程序(“app”)、协同消费平台和混搭应用程序。

万维网的发明者蒂姆·伯纳斯-李一直质疑Web 2.0是否与以前的网络技术有本质区别,他将该术语称为行话。[7]他对网络最初的设想,是“一种协作的媒体,一个我们(可以)见面、阅读和写作的地方”。[8][9]另一方面,蒂姆·伯纳斯-李创造了语义网(有时也称为Web 3.0)[10]一词,是指可以通过机器处理语义的内容网络。[11]


个人理解,像我们熟悉的抖音,快手,微信,谷歌等都是 web2 产品,我们可以在 web2 上面去做一些社交,创建用户内容,可以在搜索引擎上面来搜索相关的内容

我们所有的设备,例如手机,电脑,ipad,其他一些只能设备,只要连上网络,他就能访问 web2 的产品


主要体现在以下几个点


  1.  社交媒体:Web2时代兴起了各种社交媒体平台,如Facebook、Twitter和Instagram等。这些平台使用户能够与其他人互动、分享内容、发布观点和建立社交网络。

  2. 用户生成内容:Web2时代,用户可以轻松地创建、共享和发布各种类型的内容,如博客文章、图片、视频和评论等。这导致了用户生成内容的爆炸,使得互联网上的信息更加多样化和丰富。

  3. Web应用程序:Web2时代出现了各种交互式和动态的Web应用程序,使用户能够在浏览器中进行更复杂的操作和任务。这些应用程序通过使用AJAX等技术,实现了实时更新和响应性。

  4. 个性化体验:Web2注重用户体验,通过使用数据分析和个性化推荐算法,为用户提供定制化的内容和服务。个性化广告也在Web2时代兴起。


这些产品,应用都是通过使用前台程序,css,html,js,json,后台程序java,php,服务器,数据库等一些列链接起来的。用户看的只是展示页面,当你触发某一个动作,前台就会发送请求给后端,后端程序就会在数据库查找相应的数据进行返回。


这种有一个非常危险的点就是你的数据都是在中心化服务器上面,一旦服务器崩了,你的数据可能会永久消失。


也就是说你的数据的权限不属于你自己的,就类比你的钱存在银行上面,大概这钱可能也不是你的一样。


那么为什么需要 web3,我思考的是未来肯定是遵循人性向往更加自由的方向发展,更加可靠,可信的方向发展


就例如哈约克提出,货币非国家化,确实是神人,思想如此超前


那么什么是 web3


Web3是指第三代互联网,也被称为去中心化互联网。它是对传统互联网的一种演进,旨在重新定义人们在互联网上交互和进行业务的方式。

传统互联网是建立在中心化架构上的,主要由中心化的服务器和中心化的应用程序控制。用户需要通过中心化的服务提供商来访问和使用互联网上的内容和服务。这种中心化的结构存在一些问题,比如对个人数据的控制权不在用户手中,数据容易受到侵犯和滥用,而且在中心化架构下,信息和权力集中在少数几个大型企业手中。

Web3通过使用区块链和去中心化的技术来解决这些问题。区块链是一种分布式账本技术,可以记录和验证交易和数据的完整性。它使得信息可以被广泛分布和共享,而不依赖于单一的中心化实体。在Web3中,用户可以直接与其他用户进行交互和进行交易,而不需要通过中介。


1. 去中心化:Web3采用去中心化的技术,使得权力和控制权更加分散和民主化。

2. 自主身份:Web3允许用户拥有自己的数字身份,并对其个人数据的使用和共享行为进行更好的控制。

3. 加密货币和智能合约:Web3使用加密货币作为价值交换的媒介,同时利用智能合约实现自动化和可编程的交易。

4. 去中心化应用(DApps):Web3支持去中心化应用程序的开发和部署,这些应用程序不依赖于中心化的服务器和运营商,而是通过区块链和点对点网络运行。

有啥本质区别




Web3与Web2的本质区别可以归纳为以下几点:

中心化 vs. 去中心化:Web2是基于中心化架构的,用户依赖于中心化的服务提供商来访问和使用互联网上的内容和服务。而Web3采用去中心化的技术,使得权力和控制权更加分散和民主化。用户可以直接与其他用户进行交互和进行交易,而不需要通过中介。

数据控制权:在Web2中,个人数据通常由中心化的服务提供商控制和管理。用户需要将个人数据交给这些服务提供商,而且无法完全控制自己的数据。相比之下,Web3赋予用户更多的数据控制权。用户可以拥有自己的数字身份,并对个人数据的使用和共享行为进行更好的控制。

透明度和信任:Web2时代存在信息和权力集中的问题,少数大型企业拥有和控制着用户数据和平台。这引发了信任和透明度的问题。而Web3利用区块链技术的特性,提供了更高的透明度和信任度。交易和数据的记录被公开且无法篡改,使得用户可以更加信任和验证网络中的信息。

智能合约和加密货币:Web3引入了智能合约和加密货币的概念。智能合约是一种自动化和可编程的合约,可以在无需中介的情况下执行交易和协议。加密货币作为Web3中的价值交换媒介,使得交易更加快捷、安全和去中心化。

总的来说,Web3与Web2的本质区别在于架构的变化、数据控制权的转移、透明度和信任的增加,以及引入智能合约和加密货币等新的技术和概念。Web3旨在建立一个更加去中心化、用户掌控数据的互联网,提供更加开放、公平和透明的环境。

如果你还想学习 solidity 可以继续往下学习

什么是 solidity

solidity 实际上是我们人类看的懂得语言,我们可以通过 solidity 编程程序,然后通过编译器编译成计算机认识的语言,实际上我们可以类比为人类跟计算机交互的语言

这种语言,可以用来编写智能合约

什么是智能合约,指一系列的指令程序,定义了资产,逻辑,规则,可以在以太坊上面进行自动化执行。

以下是比较官方的定义:

智能合约是一种在区块链上执行的自动化合约。它们是以太坊区块链上的程序代码,用于定义和执行数字资产、应用程序逻辑和交易规则。

Solidity 允许开发人员编写这些智能合约的代码。你可以使用 Solidity 来定义合约的行为和规则。例如,你可以编写一份智能合约来创建数字货币,或者编写一份智能合约来定义某种类型的交易规则。

一旦你编写了智能合约的代码,它就可以在以太坊区块链上部署和执行。其他人可以与你的智能合约进行交互,执行其中定义的功能。这意味着智能合约可以自动执行,而不需要人工干预。

Solidity 为开发人员提供了一些工具和库,帮助他们编写、测试和部署智能合约。这样,开发人员可以使用 Solidity 来构建各种应用程序和数字资产,从加密货币到去中心化应用(DApps)等。

所以,简而言之,Solidity 是一种编程语言,用于编写在以太坊区块链上执行的智能合约。它让开发人员能够定义和执行自动化合约,以实现各种数字资产和应用程序的功能。

那么我们如何编写一个入门程序呢?

工欲善其器,必先利其刃

我们必须知道那些工具,俗称编辑器

solidity,基本不需要安装软件,可以直接使用

https://remix.ethereum.org/


第一个 solidity 程序

helloworld.sol

当使用 Solidity 编写一个简单的 "Hello World" 程序时,可以使用以下代码:


这段代码定义了一个名为 HelloWorld 的合约。它包含一个公共的字符串变量 greeting,初始值为 "Hello, World!"。

合约还包含一个公共的函数 getGreeting(),它是一个只读函数(view 关键字表示它不修改合约的状态),用于获取存储在 greeting 变量中的问候语。

要将此合约部署到以太坊区块链上,你可以使用 Solidity 开发工具或以太坊开发框架(如 Truffle 或 Remix)进行部署和测试。

一旦部署成功,其他人就可以通过调用 getGreeting() 函数来获取问候语。在这个例子中,调用该函数将返回 "Hello, World!"。

这只是 Solidity 中的一个简单示例,但它可以帮助你了解如何编写和部署基本的智能合约。


如何编译代码

点击左侧菜单,solidity compiler


当左侧编译完成出现绿色钩子,便是编译成功

如何部署到链上

点击 deploy & run


选择使用小狐狸钱包


将程序部署到这个 g 网上面,注意 g 网需要准备好 gas,链接小狐狸钱包


最后点击 deploy 黄色按钮,进行部署


最后如果下面看的合约地址,就说明部署成功



CC BY-NC-ND 4.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论