阐述关于IDO预售币模式项目系统开发DAPP逻辑方案解析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阐述关于IDO预售币模式项目系统开发DAPP逻辑方案解析相关的知识,希望对你有一定的参考价值。
我们鼓励在Substrate runtime的基础上进一步开发更多选择的智能合约平台。digital开发18o_2857_8624D☆v collection你可以使用这些预先构建的模块在现有的系统上设计自己的系统或端口,然后去运行了一个基于Substrate的链。
智能合约语言
ink!
ink![2]是一个基于Rust的eDSL,专门用于为合约模块[3]编写Wasm智能合约。它设计的目的是为了正确、简洁和高效。
智能合约vs Runtime模块
Substrate runtime模块和Substrate智能合约是使用Substrate框架构建“去中心化应用程序”的两种不同方法。
智能合约
传统的智能合约平台允许用户在一些核心区块链逻辑的基础上增加额外的逻辑。由于任何人都可以发布智能合约逻辑,包括恶意行为人和缺乏经验的开发人员,因此在这些公共智能合约平台都建立了许多安全卫士。
<!--声明当前文档是html5文档-->
<!DOCTYPE html>
<!--html,根元素,围堵标签-->
<html>
<!--
head,头元素:
作用:
1、用于指定HTML文章中的一些元数据,
例如元数据meta:定义页面的编码格式title:定义页面的标题
2、引入外部的资源文件--下面的章节
-->
<head>
<meta charset="utf-8"/><title>这是我的第一个HTML页面
</title>
</head>
<!--body,主体:浏览器显示的内容都将在这里编写
格式化代码的快捷键:ctrl+shift+f(英文状态下使用)
-->
<body>
hello html这是我的第一个HTML页面
</body>
</html>
一些例子:
费用:确保合约开发人员在执行合约的计算机上强制进行计算和存储,并且不允许滥用区块创建者。
沙盒:合约不能直接修改核心区块链存储或其他合约的存储。它的能力仅限于修改自己的状态,以及对其他合约或runtime函数进行外部调用的能力。
状态租赁:合约占用区块链上的空间,因此应该收取存在的费用。这确保人们不会利用“免费、无限存储”。
还原:合约很容易出现导致逻辑错误的情况。合约开发人员的期望值很低,因此会增加额外的开销支持在交易失败时还原交易,所以在出现错误时不会更新状态。
这些不同的管理开销使得运行合约变得更慢、成本更高,但是,合约开发的“目标受众”与runtime开发人员不同。
合约可以让你的社区在runtime逻辑的基础上进行扩展和开发,而无需经历所有疯狂的提议、runtime升级等等...它甚至可以用作将来runtime更改的测试基础,这种方式可以将你的网络与“成长带来的痛苦”或可能发生的错误隔离开来。
var x=5;
var res=(x===5);//true
res=(x===5);//false
res=(x!==5);//false
res=(x!==5);//true
总结一下,Substrate智能合约:
对网络来说本质上更安全。
建立了防止滥用的经济激励机制。
具有计算开销可以去支持逻辑中的正常故障。
开发门槛较低。
通过playground实现快速社区互动,以编写新逻辑。
var date1=new Date();
var date2=new Date(milliseconds);
var date3=new Date(dateString);
var date4=new Date(year,month,day,hours,minutes,seconds,milliseconds);
Runtime模块
Runtime模块不提供智能合约提供的这些安全保护。所以作为一个runtime开发人员,你的开发成本会比较高。
console.log(isNaN(666));//false
console.log(isNaN(1+2));//false
console.log(isNaN("hello"));//true
你可以完全控制网络上每个节点运行的底层逻辑。你可以完全访问所有模块中的每个存储项,也可以对其进行修改和控制。你甚至可以用不正确的逻辑或糟糕的错误处理来构建你的链。
console.log(parseFloat("66"));//66
console.log(parseFloat("199.99"));//199.99
console.log(parseFloat("1024 2048 4096"));//1024
console.log(parseFloat("128"));//128
console.log(parseFloat("10年"));//10
console.log(parseFloat("今天是8号"));//NaN
Substrate runtime模块开发的目的是产生精益的、高效的和快速的节点。它不提供交易还原的任何保护或开销,也不会向链上节点运行的计算引入任何收费系统。这意味着,在开发runtime函数时,你需要正确评估runtime逻辑的不同部分并对其计算费用,这样就不会被坏的参与者滥用,也不会损害你的网络。
console.log(parseInt("66"));//66
console.log(parseInt("199.99"));//199
console.log(parseInt("1024 2048 4096"));//1024
console.log(parseInt("128"));//128
console.log(parseInt("10年"));//10
console.log(parseInt("今天是8号"));//NaN
console.log(parseInt("10",10));//10
console.log(parseInt("010"));//10
console.log(parseInt("10",8));//8
console.log(parseInt("0x10"));//16
console.log(parseInt("10",16));//16
PS:旧浏览器由于使用旧版本的ECMAScript(ECMAScript版本小于ECMAScript 5,当字符串以"0"开头时默认使用八进制,ECMAScript 5使用的是十进制),所以在解析("010")将输出8。
以上是关于阐述关于IDO预售币模式项目系统开发DAPP逻辑方案解析的主要内容,如果未能解决你的问题,请参考以下文章
搭建第一个Dapp应用——完善SpringBoot项目业务层逻辑(DAPP开发)——2021.5.4