SERVICE PHONE

363050.com
NEWS 区块链娱乐
你的位置: 首页 > 区块链娱乐
带你读《区块链Casino USDT - 全球热门USDT游戏娱乐平台,安全稳定,极速出款开发实战: 基于JavaScript的公链与DApp开发》之二:DApp简介

发布时间:2025-12-11 12:19:54  点击量:

  Casino USDT 提供优质的加密数字娱乐体验,支持 USDT、比特币等数字资产参与游戏。平台安全稳定,极速出款,无门槛畅玩热门桌面游戏、电子竞技、体育竞猜等!立即注册,领取专属福利!casino usdt,USDT娱乐,加密货币游戏,区块链娱乐,数字货币投注,虚拟币游戏,去中心化平台,USDT竞猜,热门电子游戏,体育赛事竞猜带你读《区块链开发实战: 基于JavaScript的公链与DApp开发》之二:DApp开发简介

  本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

  本书用三个部分讲解了区块链技术以及Asch的相关实践,第一部分讲解了区块链技术的基本概念,并用300行代码实现了一个最小的、可运行的区块链;第二部分分析Asch的源码,讲解Asch的实现原理;第三部分介绍了基于Asch的侧链技术的DApp开发实战。

  在开发一个区块链应用之前,我们首先需要了解智能合约和DApp(Decentralized Application)的概念。本章首先介绍智能合约的概念以及智能合约的案例,然后解释 DApp 的概念及特点,最后介绍目前几个主流的区块链应用开发平台。

  我们先来看一下合约的定义,根据,合约是这么定义的:合同(或合约)是以双方当事人互相对立合致的意思表示所构成的,其中包括要约及承诺两个基本的意思表示。要约是表意人所发出,欲得到相对人承诺而发生一定私法上效力的意思表示。承诺则是针对要约所为的肯定答复,承诺的内容必须和该要约的内容完全一致,否则即为新要约而非承诺。应与要约区分的是要约之引诱,其并非意思表示,而是观念通知,为准法律行为之一种,不生要约拘束力。

  那什么是智能合约呢?智能合约的概念由计算机科学家尼克·萨博(Nick Szabo)于 1993 年左右提出。1994 年他把智能合约的概念整理为论文,这也是智能合约首次正式提出。在这篇论文里,尼克·萨博给出智能合约的定义如下:“智能合约超越了自动售货机中嵌入各种有价属性的范畴,通过数字方式控制合约。智能合约涉及具有动态性、频繁主动执行属性的财产,且提供更好的观察和验证点,其中主动积极的措施必须丝毫不差。”

  简单来说,智能合约就是把双方的约定、条件以代码的形式存储在计算机系统上,当一定的条件被触发或者合约人主动调用合约内容时,那么智能合约就会被执行。

  智能合约虽然在理论上很早就被提出,但是却一直停留在概念上。智能合约的实现需要几个条件:

  必须有货币参与。没有货币参与的合约只能是空谈。以前的货币只能是法币,加密货币的出现提供了合约里价值流通的手段。

  资产必须数字化。写在合约的资产要数字化。诞生于数字世界的资产(比如游戏里的装备等)天然具有数字化的属性,物理世界中其他的实物资产也必须有数字化的手段。

  资产必须联网且绝对信任某个数据库。以前这个数据库是由一个中心化的组织保管和维护的,智能合约的参与方必须相信这个组织。区块链的出现使得去中心化数据的存储成为可能。

  简单地说,智能合约它必须是智能的,自动化的,不需要人来执行的,合约的执行是自动触发的。而这些特点在区块链诞生以前是很难满足的,而区块链的内置资产、去中心化存储等特性为智能合约的部署和执行提供了天然的土壤。

  撰写一个智能合约和撰写通常的合同比较类似,不过需要用代码的形式来实现而已。这里以以太坊为例,撰写智能合约的通常步骤有:

  2)将第一步确定的细则使用智能合约编程语言(以太坊上用的是 Solidity )实现,编译成 bytebode,然后部署到以太坊上。

  3)一旦合约被部署到以太坊,那么这个合约就获得了一个合约地址。参与方可以根据合约地址来调用智能合约。

  4)智能合约一旦被部署到以太坊,任何人都无法再对合约进行更改,即使是最初合约的发布者。

  我们以经典的“先发货还是先打款”的问题,看一下智能合约如何解决这个问题。

  假设 A 想要从 B 那里买一批货物,A 和 B 在不同的城市,因此货物需要托运。双方都担心自己受到欺骗,因此 A 不想在没有收到货之前付款,但是 B 不想在没有收到钱之前就发货。为了保证交易的顺利进行,他们引入了一个第三方C做担保。A 先把货款打给 C, 当 A 收到货以后,就可以知会 C 把货款打给 B。这个流程用智能合约实现的话代码如下:

  在这个智能合约里,最后的交易结果由 C 决定,他可以根据交易的结果决定把货款给发货方还是购买方。

  经过前几年移动互联网以及智能手机的普及,相信几乎所有人都知道了什么是 App(Application 的简称)。时间转眼迈入区块链时代,一个新的名词 DApp 开始进入大众的视野。简单来说,DApp 是 Decentralized Application 的简称,发音为 Dee-App,类似于 E-mail。DApp 和 App 最大的不同是:DApp 是运行在去中心化的区块链中,区块链提供了计算资源和存储资源的支持,前端技术和传统的 Web 开发保持一致。

  首先我们来看一下 DApp 的定义。关于 DApp 的具体理解和定义,人们目前并没有达成一致。 有人认为只有基于以太坊智能合约开发的应用才是 DApp,而有人也提出类似于BitTorrent 之类的 P2P 应用也可以称为 DApp。这里采用目前最通用的 DApp Fund CEO David Johnston 在文章《Decentralized Applications White Paper and Spec》里的说法,对 DApp 的定义做一个概括。在这篇文章里,只有当满足以下所有条件时,一个应用才可以称之为 DApp:

  应用必须完全开源、自治并且没有一个实体控制着该应用的大部分代币(Token)。该应用必须能够根据市场的反馈及技术要求进行升级,但是升级必须由应用的用户达成共识之后才可以进行。

  应用必须拥有代币机制(可以使用已存在的代币或者新发行一种内置代币),矿工或者应用维护节点需要得到代币奖励。

  应用代币的产生必须依据标准的加密算法,有价值的节点可以根据该算法获取应用的代币奖励。

  根据以上的标准,比特币就是一个 DApp, 为什么这么说呢?我们来看一下比特币是否符合上面的标准:

  可见,比特币是一个 DApp,Asch 是一个 DApp,而基于 Asch 开发的 CCTime 也是一个 DApp。不同的是,有些 DApp 扮演了操作系统的角色(比如 Ethereum、Asch),基于这些平台可以很容易地开发出特定需求的 DApp,而有些 DApp(比如 CCTime)则是具体的应用。

  你可以从零开始,自己创造一个完整的区块链系统并开发自己的应用。这相当于开发一个新的区块链项目,比较费事费力且对个人能力要求较高。如果你只是一个普通的开发者,想基于区块链开发自己的应用,那么选择一个成熟的区块链应用开发平台就好了。这些平台一般会提供完善的接口以及开发工具,你只需要操心业务逻辑及其实现就好了。关于区块链的底层部分,这些平台都会帮你处理好。无论用哪种方法,DApp的核心要素包括如下几点:

  开发平台。目前最流行的开发平台是 Ethereum:Ethereum 是目前全球除了比特币以外第二大的区块链项目,它就像一台遍及全世界的分布式计算机,你只需要把你的应用部署在 Ethereum上,应用的运行就可以由所有的 Ethereum 节点来保证了。应用的运行需要支付手续费(GAS)。缺点是需要学习一门新的语言 Solidity。另外一个平台是现在笔者所在团队开发的 Asch(中文名叫做阿希)。只要掌握 JavaScript,就可以基于 Asch 开发 DApp。Asch 采用的是侧链架构,每一个 DApp 就是一套侧链。侧链可以有独立的区块链和节点网络。不同的DApp 之间互相不会影响。不同于 Ethereum,Asch 系统上 DApp 数量的增加不会增加主链的负担,是一套更加先进的机制。

  共识机制。共识机制决定了运行 DApp 的各节点如何达成共识及获取奖励,目前最常用的共识机制有 POW、POS 以及 DPoS 等。POW 依据计算资源分配奖励,目前 Bitcoin、Ethereum 都采用了这种机制(不过 Ethereum 后面可能要迁移到 POS)。Asch采用的是DPoS机制,核心系统是由 101 个委托人节点组成,委托人是被社区选举的可信账户,得票最高的 101 个委托人负责生产区块。得票排名未进入前 101 名的账户被称为候选人,当他们将来获得足够多的选票并进入前 101 名后,将成为正式的委托人。基于Asch开发的 DApp 默认采用这种共识机制,不过开发者可以自己修改并决定使用哪种共识机制。

  代币分发。一般 DApp都会内置代币(Token),而想让更多用户参与到 DApp 的维护与使用中的话,就需要考虑好如何把代币分发到用户手中。目前最常见的有以下几种方案。挖矿:以 Bitcoin 为例,任何拥有计算资源的人都可以加入到 Bitcoin 的挖矿中来,通过挖矿奖励来获取新的 Bitcoin。ICO:可以简单理解为众筹。通过收集市面上已经成熟的其他代币,根据一定比例兑换为本 DApp 内的代币来完成。Ethereum 就是按照 1BTC/2000ETH 的比例通过 ICO众筹到了很多Bitcoin作为起始资金。目前这种分发方式在国内已被禁止。空投:将代币免费分发到用户手中。持有其他代币的用户只需要完成一个简单的绑定流程,就可以得到代币。最近的案例有 CCTime空投,具体方式可参考CCTime官网。私募:这与找投资一样,依个人能力而定。

  1)撰写白皮书。白皮书描述了 DApp 的技术原理、要解决的问题以及特点等。社区对白皮书的反馈可以添加到后期的更新中。

  3)开发 DApp,逐步进化完善。在 DApp 发布之后,如果该 DApp 走向了一个健康发展的道路,可以期望会有越来越多掌握各种技能的用户加入到社区,一起维护 DApp 的发展。这时早期开发者在社区所占的比重越来越小,DApp 的发展交由社区整体进行运营、更新。无论是比特币还是比特股,早期开发者所起到的作用已经越来越小,去中心化的社区已经可以推动这些项目的继续发展。

  目前社会对 DApp 开发的关注刚开始,市面上还难以看到流行的 DApp 应用。随着区块链技术的发展,传统的 C/S 模式可能会被颠覆,开发者也不用再去买云服务器部署自己的应用。有了区块链开发平台,开发者可以很容易地把应用部署到区块链上,这是一个基于全球服务器,7×24不间断服务的应用平台。另外由于 DApp 代币机制的存在,开发者可以很容易地基于代币获得价值回报。相信在不久的将来,DApp 会超越传统 App,在人们的社会生活中扮演越来越重要的角色。

  开发区块链应用的最快捷方式就是选择一个合适的开发平台,利用平台提供的开发工具和基础资源,完成业务代码的编写和部署。目前比较成熟的区块链应用开发平台有以太坊、Asch 以及 Hyperledger等。本章会介绍这三个平台的特点,读者可以根据自己的需求自行决定选择哪个平台来进行后续开发。

  以太坊(Ethereum)是一个开源的区块链智能合约开发平台。和比特币不同,以太坊提供了一个支持图灵完备的智能合约开发语言以及其他更加灵活的架构。开发者可以基于以太坊提供的开发语言和接口开发区块链应用。以太坊的区块头如图2-1所示。

  2014年7月~8月,以太坊团队通过 ICO 的方式销售了系统的内置代币 ETH,换取了大量的比特币用于以后的研发和运营。这也是全球第一个 ICO 项目。当时1个 ETH 的价格在 3元左右,现在的价格已经是 5000 多元。3年多的时间实现了 1600 多倍的增长,早期的投资人都获得了极为丰厚的回报。

  以太坊是一个智能合约开发平台,它支持图灵完备的开发语言。通过这种语言,可以开发功能非常丰富的智能合约,目前最流行的语言是 Solidity。这大大扩展了平台的用途,而不仅仅是作为一个电子货币流通平台。

  比特币原理简单,但功能也有限,目前只能作为一个封闭的数字货币流通平台来运转,几乎没有可扩展性如图2-2所示。

  打个比方,这就像是有两条河,其中一条河叫比特币,你只能站在岸边看着它流淌,什么也干不了。而另一条河叫以太坊,你可以自己造船下河。你的船可以拉客、可以运货,甚至可以养猫,这就大大提高了这条河的利用率。这种模式相比比特币来说是一个非常大的进步,但是以太坊就没有问题了吗?这就引出了下一个问题——以太坊的拥堵问题。

  前面讲到了任何人都可以在以太坊这条大河上造船开展自己的业务,但是河只有一条,如果船多了会怎么样?拥挤,对吧。这也是我们在过去几年经常能看到的现象,那就是以太坊的网络拥堵。最近的一次拥堵发生在本书写作的2018年,一款基于以太坊开发的养猫游戏流行起来,它一度占据以太坊 20% 的流量,造成了以太坊主链的拥堵,影响到了基于以太坊开发的所有其他应用。这就相当于以太坊这条河中突然出现了一条大船,搞得其他船都没有空间了。

  Asch 是一个去中心化的应用平台,其架构如图2-3所示。它提供了一系列的SDK 和API来帮助开发者构建基于 JavaScript 和侧链技术的去中心化应用。 Asch 通过提供定制侧链、智能合约、应用托管等一体化的行业解决方案,致力于打造一个易于使用、功能完备、即插即用的系统。利用 Asch 生态系统,开发者可以快速迭代自己的 JavaScript 应用,并发布到系统内置的应用商店中,这些应用可以被平台中的分布式节点下载并执行,并服务于普通用户,整个过程都由Asch侧链共识网络提供安全保证。

  Asch系统本身也是一个完全开放的、去中心化的应用,内置有代币,单位为 XAS,中文名叫Asch币。Asch币可以通过双向锚定的方式与侧链或 DApp 进行交互,作为所有 DApp 之间资产转换的桥梁和媒介,这些代币将在系统发布之前以众筹的方式预售给投资人。系统一旦发布,Asch 最初的核心团队将不再掌控系统的走向,只有系统的权益人和代币的拥有者决定系统将来的发展。

  Asch 平台除提供一些基本服务外,还将提供技术和工具上的支持,主要面向以下群体:

  开发者。开发者可以根据 Asch 平台的应用开发规则和商业行为准则,并按照相关的规范进行开发和提交 DApp。DApp 的商业模式或免费,或定价销售,或按增值服务付费。采用何种商业模式完全由开发者决定。

  企业。Asch 平台提供的工具可以非常容易地创建一个完整的区块链,更重要的是可以楔入到 Asch 平台的主链或者比特币的区块链中,实现与成熟电子货币的对接,这对中小型企业,特别是初创企业是非常有吸引力的。中小企业可以通过区块链技术提供原本封闭在企业内部、互联网内部的信息和数据,甚至与监管机构的相关系统数据相互链接,增强透明度,以此树立良好的形象,赢得投资者、金融机构的信任度,顺利拿到融资或项目合同等。中小企业主动公开和开放资料,已成无法阻挡的趋势。因为现在有很多的公开渠道来获取数据,中小企业已经越来越难隐瞒它们不想让外界知道的信息。我们可以大胆预测,区块链将是未来帮助中小企业发展的重要武器。

  普通用户。普通用户可以通过 Asch 内置的应用商店进行下载、安装和使用去中心化应用,这跟手机平台的应用商店是类似的模式。Asch 系统支持多种类型的去中心化应用,普通用户在消费这些应用的同时,还可以通过贡献内容来获得收益。开发者与普通用户将共同组成一个繁荣的生态系统。

  Hyperledger(超级账本)是由 Linux 基金会支持,很多巨头(包括IBM、Intel等)参与一个面向企业打造的一个透明、公开的去中心化分布式账本项目。目标是制定一个区块链技术的开源规范和标准,让更多的应用可以容易地建立在区块链技术之上。

  Hyperledger 目前包括5个技术框架,3+1 个工具包(1 个尚未发布)。这 5 个技术框架分别是:

  本章介绍了智能合约和 DApp 的概念以及区块链应用开发平台。区块链技术的应用落地还刚刚开始,无论是开发智能合约还是 DApp,目前都还处于初始阶段,读者可以根据自己的应用场景选择合适的平台进行开发。

  本文系统解析公链共识机制对性能的影响,围绕TPS、延迟与安全性三重权衡,拆解核心概念,梳理高可信度证据链,并揭示常见设计误区。结合跨链互操作与高可用架构实践,提出分层应用策略,助力开发者与决策者在不同场景下实现性能与安全的最优平衡。(238字)

  【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡

  【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡

  Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念

  Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。

  《循序渐进Node.js企业级开发实践》由清华大学出版社出版,基于Node.js 22.3.0编写,包含26个实战案例和43个上机练习,旨在帮助读者从基础到进阶全面掌握Node.js技术,适用于初学者、进阶开发者及全栈工程师。

  在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将以Node.js为例,深入探讨其背后的哲学思想、核心特性以及在实际项目中的应用,旨在为读者揭示Node.js如何优雅地处理高并发请求,并通过实践案例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和思考。

  在这篇文章中,我们将一起探索Node.js的奇妙世界。无论你是刚接触后端开发的新手,还是希望深化理解的老手,这篇文章都适合你。我们将从基础概念开始,逐步深入到实际应用,最后通过一个代码示例来巩固所学知识。让我们一起开启这段旅程吧!

  本文将带你领略Node.js的魅力,从基础概念到实践应用,一步步深入理解并掌握Node.js在后端开发中的运用。我们将通过实例学习如何搭建一个基本的Web服务,探讨Node.js的事件驱动和非阻塞I/O模型,以及如何利用其强大的生态系统进行高效的后端开发。无论你是前端开发者还是后端新手,这篇文章都会为你打开一扇通往全栈开发的大门。

  Chrome 下载大文件报错!用 Streamsaver.js 完美填坑

  基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究

  js react antd 实现页面低分变率和高分变率下字体大小自适用,主要是配置antd

地址:Casino USDT永久网址【363050.com】  电话:363050.com 手机:363050.com
Copyright © 2012-2025 Casino USDT 版权所有 非商用版本 ICP备案编: