去中心化社区治理代币模式DAO系统开发部署详细教程

简介: 去中心化社区治理代币模式DAO系统开发部署详细教程

DAO,是基于区块链核心思想理念(由达成同一个共识的群体自发产生的共创、共建、共治、共享的协同行为)衍生出来的一种组织形态。是区块链解决了人与人之间的信任问题之后的附属产物。DAO具有充分开放、自主交互、去中心化控制、复杂多样以及涌现等特点。

故事结束
一旦达到故事的时间或章节限制,就应该结束故事了。任何人都可以在允许提取股息的日期之后调用结束函数。首先,我们需要一个新的StoryDAO属性和一个事件:
bool public active = true;
event StoryEnded();
然后,构建函数:
function endStory() storyActive external {

withdrawToOwner();
active = false;
emit StoryEnded();

}
简单:它将收集的费用发送给所有者并发出事件后停用故事。但实际上,这并没有真正改变整个DAO中的任何内容:其他功能对它的结束没有反应。那么构建另一个修饰符:
modifier storyActive() {

require(active == true);
_;

}
然后,将此修饰符添加到除withdrawToOwner之外的所有函数中,如下所示:
function whitelistAddress(address _add) storyActive public payable {
如果DAO中遗留了任何代币,将它们取回并接管这些代币的所有权,以便以后能够在另一个故事中使用它们:
function withdrawLeftoverTokens() external onlyOwner {

require(active == false);
token.transfer(msg.sender, token.balanceOf(address(this)));
token.transferOwnership(msg.sender);

}

function unlockMyTokens() external {

require(active == false);
require(token.getLockedAmount(msg.sender) > 0);

token.decreaseLockedAmount(msg.sender, token.getLockedAmount(msg.sender));

}
unlockMyTokens函数用于解锁所有锁定的代币,以防某些锁定代币为特定用户锁定。它不应该发生,并且应该通过大量测试来移除此功能。
股息分配和提款
现在故事已经结束,收集的费用需要分配给所有代币持有者。可以重新使用我们的白名单来标记所有取消费用的人:
function withdrawDividend() memberOnly external {

require(active == false);
uint256 owed = address(this).balance.div(whitelistedNumber);
msg.sender.transfer(owed);
whitelist[msg.sender] = false;
whitelistedNumber--;

}
如果这些股息未在一定时限内撤回,可以抓住其余股息:
function withdrawEverythingPostDeadline() external onlyOwner {

require(active == false);
require(now > deadline + 14 days);
owner.transfer(address(this).balance);

}
部署问题
鉴于合约现在非常大,部署和/或测试它可能会超过以太坊区块的gas限制。这是限制大型应用程序部署在以太坊网络上的原因。无论如何要部署它,在编译期间尝试使用代码优化器,方法是更改truffle.js文件以包含用于优化的solc设置,如下所示:
// ...

module.exports = {
solc: {

optimizer: {
  enabled: true,
  runs: 200
}

},
networks: {

development: {

// ...
这将在代码中运行优化器200次以查找在部署之前可以缩小,移除或抽象的区域,这将显着降低部署成本。

相关文章
|
测试技术 数据安全/隐私保护 索引
DAO社区治理系统模式开发规则详情 | DAO社区治理系统开发源码示例(Python语言版)
DAO(Data Access Object)社区治理模式是一种去中心化的社区治理模式,它将权力下放到社区中,让社区成员自主决策、自我管理,从而实现社区的自主治理。在DAO社区治理模式中,权力下放到社区中,社区成员可以自由地发表自己的意见和建议,并且能够直接参与到社区的决策过程中。
|
存储 区块链 数据安全/隐私保护
DAO社区治理代币挖矿系统开发丨DAPP技术分析
DAO的生态系统是智能合约【180-系统3831-开发9724薇】和功能完善的社区的独特组合。与传统组织不同,DAO不受董事会或经理管理,而是由其成员管理,这些成员通过基于代币的投票机制集体管理DAO内的决策,这些投票机制根据智能合约中的预定义规则执行。
|
区块链
关于DAO社区治理dapp系统开发部署教程
关于DAO社区治理dapp系统开发部署教程,代币投票,管理
|
7月前
|
安全 API 网络安全
数字货币交易所系统开发详细功能/需求项目/教程步骤/指南逻辑
Developing a digital currency exchange system is a complex project that requires multiple steps to complete. The following are the general steps for developing a digital currency exchange system
|
7月前
|
算法 大数据 分布式数据库
DAPP质押模式系统开发项目方案|DAPP合约开发案例
区块链技术是一种分布式数据库技术,它是由多个节点构成的去中心化网络
|
7月前
|
存储 安全 分布式数据库
BRC20铭文跨链智能合约系统开发案例详细/需求说明/指南步骤/方案逻辑/源码平台
BRC20铭文跨链系统是一种基于区块链的跨链转账系统。下面是BRC20铭文跨链系统开发方案设计的详细解释:
|
安全 Go
dapp丨defi代币合约系统开发详情说明丨案例分析丨需求设计丨成熟案例丨源码平台
Before developing the DApp pledge mining system, it is necessary to clarify the entire development process. Firstly, determine requirements and functional planning, including user interface design, contract writing, etc. Secondly, design the system architecture to determine the relationships and dat
|
人工智能 算法 安全
  DAPP互助模式开发?全合约逻辑详细开发方案
数字化时代的今天,互联网已经渗透到了生活的方方面面,人们对于网络互助模式的需求也日益增长。
|
存储 监控 安全
合约交易所开发详情丨合约交易所系统开发项目/成熟案例/方案逻辑/规则玩法/稳定版/源码部署
合约交易所系统开发是一个复杂的项目,它涉及多个方面,包括系统设计、规则制定、开发实现、部署和稳定运行等