coneys-network / coneys-rewards-on-chia Goto Github PK
View Code? Open in Web Editor NEWReward points for Enterprises.
License: Apache License 2.0
Reward points for Enterprises.
License: Apache License 2.0
目前效果
我们已经在chialisp语言编写的硬币代码上实现了较为通用的多签投票功能:多签投票 + 多签少数服从多数 + 可配投票通过阈值 + 可保留一票否决权(在v14的代码中有所体现)
多签投票相关的想法与实现
v3: 首先,我们的币只是随便就能花掉的,需要有投票人同意,才能花费币或操作币;v3中的是投票功能最初的想法和尝试,设计一个类似密码的验证功能,柯里化时传入密码,花费币时solution中的密码必须验证正确,才能花费币或操作币。
v5: 因为参与投票的不止一人,于是在verify函数中,用递归实现验证多个投票人hash的功能。
v6: 把多个投票人的hash写死在代码里肯定是不科学的。所以改为在柯里化的时候传入投票人hash的list,solution中必须包含所有投票人hash才算通过。
v10: 多签投票是需要多个人都传入自己的hash,并且传入的hash可能是无序的,所以需要判断传入的hash值,在柯里化的hash值列表中存在。
v11: 考虑到只传入投票人的hash值是不够的的,他们必须做出投票,设计成了验证键值对的方式。验证hash值存在的同时,也要验证该hash值的投票值为1,这样才算投了一个同意票,并且需要全部人员都同意,才可以操作该硬币。
v12: 考虑到需要加入一票否决权的功能,所以在柯里化的时候,多加了两个参数,IS_RETAIN_VOTE_POWER是否需要保留一票否决权,POWER_VOTER掌握否决权的人的hash。
v14: 因为有些时候,不可能需要全部投票人都同意才算通过。我们需要实现有少数服从多数的功能,所以在柯里化时加一个参数,VOTING_THRESHOLD票数阈值,来控制需要多少票才算通过的功能
其他想法与实现
v1:加入了input_cmd输入操作码参数,方便以后加入添加有关币的操作,可以设定不同操作不同的操作码。
v2:设计花费币的时候找零的功能。
v4:尝试加入了verify函数,来实现验证的功能。
v7:限制花费币的过程里,找零后余额必须大于0。
v8:加入了销毁功能,销毁操作是把硬币花费出去,自身不生成新币;可以花费到黑洞钱包中去,也就相当于这个币销毁了。
v9:加入了花费金额必须大于0的限制条件,防止恶意传入负数的花费金额。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.