palletone / go-palletone Goto Github PK
View Code? Open in Web Editor NEWOfficial Go implementation of PalletOne
Home Page: https://pallet.one
License: GNU General Public License v3.0
Official Go implementation of PalletOne
Home Page: https://pallet.one
License: GNU General Public License v3.0
当存在主链PTN和子链ABC时,用户A在子链上存证了文件Hash1,通过跨链验证功能,任何人都可以在主链上证明A用户确实存证了Hash1。同理,用户B在主链存证了文件Hash2,通过跨链验证功能,其ABC子链也能验证Hash2被存证。
实现存证数据的跨链验证。无论是主链上存证的数据,还是子链存证的数据,在对方链上都能验证其合法性。
无论主链还是子链,都有一个系统合约:分区合约PartitionSYSContract。主链PTN的该合约中,注册了一个子链ABC。子链ABC的该合约中,注册了一个主链PTN。相互注册成功后,主链所有全节点会同步子链ABC的区块头,子链ABC的全节点也会同步主链PTN的区块头。
存证的几个核心要素:存证人,存证内容,存证时间戳,存证证明(TxHash)
分区合约除了是一个主链子链的注册合约,也提供了SPV验证的功能。
假设用户A在子链ABC上有100个ABC Token,现在需要将其跨链转移到PTN主链上,操作如下:
I build and configure private chain follow the wiki. But gptn server cannot produce units and show this log:
2020-04-01T15:03:53.000+0800 info mediatorplugin/mediator_plugin.go:109 Not producing unit because production is disabled until we receive a recent unit. Disable this check with --staleProduce option.
Could you please help me solve this problem?
我们在开发过程中发现调用wallet_sendRawTransaction rpc方法和wallet_sendRlpTransaction方法都无法广播交易,错误码:32021: borad transaction had be changed. 在全节点上手动调用这两个方法都可以成功广播。这个问题在测试网络和主网都存在。请问该如何解决这个问题?
升级目前的共识机制,支持POW和DPOS混合共识。
【1】让目前不持有足够Token节点和广大追随者,爱好者都能够参与到PalletOne的Token生产中来 ,并且能够获得收益。
【2】DPOS强节点相当于参议院,POW众多分散节点充当众议院角色,普通矿工和代币持有者拥有平等话语权。
【1】DPoS可能被认为是部分中心化的,在某种意义上,它可能会削弱区块链的一个关键优势。
【2】混合共识方法也被称为活动量证明,它是两种共识方法的合并。实施一种混合共识机制,这种机制分为工作量证明和权益证明
【3】这种混合的共识方法为所有矿工(工作量证明法支持者)和代币持有人(权益证明法支持者)提供了赢得区块的平等机会。矿工可以通过增加工作量来提升赢得区块的机会,代币持有者也可以通过持有更多代币来增加他们(赢得区块)的机会。 每个群体都有50%的机会获胜。
【4】一旦区块被挖出来,该过程就会重新开始。 实现中,没有固定的顺序,其中任何一个群体都可以挖矿。平均50%的区块将由DPoS挖出,50%将由PoW挖出,但一个区块的后续区块可以由任意一种方法被挖出来。
UnitedBitcoin(UBTC比特联储)
TRUE
当存在主链PTN和子链ABC时,用户A在子链上有一定量的ABC,通过Token跨链转移功能,A用户可以将其ABC Token转移到主链上,然后在主链进行其他操作。用户B在主链获得了一定量的ABC,通过Token跨链转移功能,其ABC可以转移到子链上,然后在子链对Token进行其他操作。
实现Token的跨链转移。无论是主链的Token转移到子链,还是子链的Token转移到主链,都可以实现。
无论主链还是子链,都有一个系统合约:分区合约PartitionSYSContract。主链PTN的该合约中,注册了一个子链ABC。子链ABC的该合约中,注册了一个主链PTN。相互注册成功后,主链所有全节点会同步子链ABC的区块头,子链ABC的全节点也会同步主链PTN的区块头。
分区合约除了是一个主链子链的注册合约,也是一个Token跨链的锁定合约。
假设用户A在子链ABC上有100个ABC Token,现在需要将其跨链转移到PTN主链上,操作如下:
现在用户B在主链PTN上获得了100个 ABC Token,他需要将他们转移到ABC子链上,操作如下:
建立新的定时任务系统合约,用户通过crontab语法格式设置定时任务。定时任务触发时,能够进行转账或者调用合约。
让PalletOne支持定时任务,而不是通过外部账户来触发交易。
建立一个全新的系统合约,ScheduleContract。在该合约中,具有:设置定时任务、启用定时任务、停止定时任务、销毁定时任务这几个功能函数。另外还有查询定时任务内容、查询任务历史执行情况等查询函数。
设置定时任务主要包含2个重要参数:Schedule表达式、任务内容。Schedule表达式参考Cron的表示方式,唯一不同的是在区块链中不能精确到具体哪一秒执行任务,而是在指定时间之后下一个产块时包含任务。另外一种表达方式就不是绝对的时间,而是采用高度来表示,比如:高度值是1000的整倍数,即每1000个块执行一次任务。
任务内容分为:转账、合约调用两种。转账可以指定收款方、金额、资产ID,而且是一个数组,也就是说可以执行多个收款人的转账。合约调用需要指定合约地址、函数名、函数参数,以及调用合约时转移到合约上的TokenID和数量。
停止定时任务只是将任务的状态改为停止,接下来到了指定的时间段不会触发该任务。
如果任务已经被停止,那么可以通过启动定时任务函数将任务的状态又改回活动状态,下一次到时间点时将触发该任务。
表示这个定时任务再也不用了,需要彻底删除,同时将其中的Token回收回来。
本方案是PalletOne Layer-2的改进方案,该方案为PalletOne提供更丰富的数字身份实现机制。
目前PalletOne联盟链支持基于CA的数字身份管理,但是该方式下用户的身份无法自主可控。本方案提出的基于去中心化的数字身份方案可以将DPKI技术与区块链技术结合,实现PalletOne的去中心化数字身份服务。
PalletOne的去中心化数字身份包括PalletOne DID声明、PalletOne可验证声明、PalletOne Sidetree协议以及零知识证明。
DID、可验证声明和Sidetree协议的基本定义参考:https://github.com/palletone/palletone-DID。
[Sidetree Protocol
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.