广州列举网 > 商务服务 > 网站/软件服务 > 智能合约模式系统开发DAPP搭建
广州
[切换城市]

智能合约模式系统开发DAPP搭建

更新时间:2022-08-23 16:57:15 浏览次数:57次
区域: 广州 > 天河 > 黄村
类别:软件开发
地址:广州天河区
  智能合约是运行在区块链公链上的一种代码,开发V+I8l系259l统3365,该代码由Solidity编写,并通过区块链的智能合约虚拟机来执行,以达到对区块链编程的目标。可以将区块链公联理解为操作系统,Solidity是编写该操作系统应用程序的编程语言,智能合约虚拟机则是编程语言编译之后的代码运行环境。

  交易

  区块链通常被理解为超级账本,开发V+I8l系259l统3365,账户与账户之间可以通过交易来完成转账,只是这种转账方式与传统的银行转账有很大的不同。

  (1)这是一个完全去中心化的金融系统,区块链账户不需要使用者到银行机构或者其他部门申请,因为整个系统中没有这样的中心化部门来管理账户信息,使用者只需要根据一种非对称加密算法来生成一个密钥对,其公钥作为账户地址,也就是常说的区块链钱包地址,这个地址可以在网络中广播,允许网络中所有的账户获取和使用。

  该账户是公开的。私钥作为转账交易的签名和密码,开发V+I8l系259l统3365,由使用者私人保管,每次转账时,需要通过私钥签名来证明交易的合法性。在现实使用中,区块链钱包会将私钥进行对称加密,通过使用者输入人类能够理解的密码作为私钥加密的密钥,将区块链密钥以密文的形式保存到磁盘空间中。需要注意的是,如果忘记解密密钥的密码,就失去了对账户的操作权限。

  (2)这是一个完全无中心的账本系统。在区块链上的每一笔交易都是一条转账记录,开发V+I8l系259l统3365,如果该交易成功被整个区块链网络认可则转账成功,并且会将转账记录存储在区块链的数据库里面,每个区块链节点都可以访问和操作这个数据库,并且任何人都可以查询交易双方的账户信息。

  (3)发生在区块链上的交易,是存储在区块链网络中的所有全节点(拥有所有交易数据的区块链节点叫作全节点)上的,并且也是公开可查的,用户不仅可以查询某个账户下的所有交易,还可以查看其账户余额。

  区块头和区块体数据也会被当作输入数据做一次Hash运算,其运算结果会被存储在下一个区块的区块头中,这样任何区块内容的修改都会反映到区块的Hash值上,而区块的Hash值又是下一个区块的输入数据,它又会被当作新区块的数据参与一次新区块的Hash运算,随着时间的推移和交易量的增加,所有的区块会通过保存前一个区块的Hash运算结果的方式组成一条链。

  ==将交易打包成数据块,再将数据块以Hash值的方式组织成链式结构,这就是区块链定义的来源。==由分布在全世界的节点组成,任何人都可以公开查询,但又无法任意修改。

  没有中心服务器,运行在去中心化、分布式节点上的APP。

  Dapp=前端(web、app)+后端(智能合约)

  以太坊社区把基于智能合约的应用称为去中心化的应用程序(Decentralized App,简称DApp)。

  DApp的目标是(或者应该是)让智能合约有一个友好的界面,外加一些额外的东西,例如IPFS(可以存储和读取数据的去中心化网络,不是出自以太坊团队,但有类似的精神)。

  DApp可以在一台与以太坊节点交互的中心化服务器上运行,也可以在任意一个以太坊平等节点上运行。

  提示:与一般的网站不同,DApp不能在普通的服务器上运行。它需要提交交易到区块链并且从区块链而不是中心化数据库读取重要数据。

  相对于典型的用户登录系统,开发V+I8l系259l统3365,用户有可能被表示成一个“钱包”地址而其他用户数据保存在本地。许多事情都会与目前的Web应用有着不同的架构。

  DApp流程如下:

  1)用Solidity(或其他语言)编写智能合约(后缀为.sol)。

  2)用sole编译器将.sol合约编译成EVM字节码。

  3)编译好的字节码回送给DApp前端。

  4)前端将编译好的智能合约部署到区块链中。

  5)区块链返回智能合约地址+ABI(合约接口的二进制表示。合约接口用JS0N表示,包括变量、事件和可以调用的方法)。

  6)前端通过Address+ABI+nonce,调用智能合约。

  7)智能合约开始处理。

  智能合约技术的产生对互联网变革非常重要,开发V+I8l系259l统3365,但是不能直接用于支撑DApp应用生态环境。

  侧链、VM也撑不起应用生态,因为我们知道应用运行于0S之上,而不是直接运行在裸机之上。

  一定程度上讲,VM、侧链可以类比图灵等价的裸机。

Solidity

  Solidity是一种语法类似JavaScript的高级语言。它被设计成以编译的方式生成以太坊虚拟机代码。

  代码片段:

  pragma solidity^0.4.22;

  contract helloWorld{

  function renderHelloWorld()public pure returns(string){

  return'helloWorld';

  }

  }

  ERC-20

  的智能合约,想必大家都听过,那就是ERC20。

  ERC-20是一种代币的标准协议,简单地说,任何ERC-20代币都能立即兼容以太坊钱包(几乎所有支持以太币的钱包,包括MIST、imToken等),由于交易所已经知道这些代币是如何操作的,它们可以很容易地整合这些代币。这就意味着,在很多情况下,这些代币都是可以立即进行交易的。

  一个基于ERC-20的代币包含以下接口:

  contract ERC20Interface{

  function totalSupply()public constant returns(uint);

  function balanceOf(address tokenOwner)public constant returns(uint balance);

  function allowance(address tokenOwner,address spender)public constant returns(uint remaining);

  function transfer(address to,uint tokens)public returns(bool success);

  function approve(address spender,uint tokens)public returns(bool success);

  function transferFrom(address from,address to,uint tokens)public returns(bool success);

  event Transfer(address indexed from,address indexed to,uint tokens);

  event Approval(address indexed tokenOwner,address indexed spender,uint tokens);

  }
广州网站/软件服务相关信息
2天前
3天前
5月22日
5月21日
5月21日
注册时间:2022年07月01日
UID:739123
---------- 认证信息 ----------
手机已认证
查看用户主页