qosgroup / qos Goto Github PK
View Code? Open in Web Editor NEWqos公链实现
License: Apache License 2.0
qos公链实现
License: Apache License 2.0
qoscli transfer 不带参数直接报错
qoscli account 不带参数无提示
height:26115 "
I[11-19|01:53:42.394] HTTPJSONRPC module=rpc-server method=abci_query args="[/store/qcp/key <common.HexBytes Value> ]" returns="[<core_types.ResultABCIQuery Value> ]"
I[11-19|01:53:42.394] Served RPC HTTP response module=rpc-server method=POST url=/ status=200 duration=0 remoteAddr=172.19.222.66:59142
I[11-19|01:53:42.397] ABCIQuery module=rpc path=/store/qcp/key data=73657175656E63652F696E2F71737461727372616365 result="key:"sequence/in/qstarsrace" value:"\216\005" proof:"\314\003\n#\n\003acc\022\034\n\032\010\206\230\003\022\0248\276\301B\265\376\314\331\310v\203\034\217\315\372$d\204\302\342\n$\n\004base\022\034\n\032\010\206\230\003\022\024\2721!\300v\246\334\223T\0023\020\215>p[x\204\3553\n\021\n\007approve\022\006\n\004\010\206\230\003\n)\n\tvalidator\022\034\n\032\010\206\230\003\022\024w\264\002\003\326\254y\354\222\264\375\370c\010k~\217\233-\027\n#\n\003qcp\022\034\n\032\010\206\230\003\022\024G0j\275\216\217\233R1\202\017\326\263\242\317\210\367fx\326\022\003qcp\032\226\002\n\037\010\024\020\224\005\030\206\230\003\024\031\251wE;r[\017\332\367\000\205j\3173\277\241\242\207H\n\037\010\020\020\344\001\030\206\230\003*\024\316\310\235P\307\032\224+\022\314\025\350GO\014\262\355\214\310\356\n\036\010\014\020H\030\206\230\003*\024\356v^\033\007\235Q0j\246\210\212\022,&\\R\350\231\225\n\036\010\n\020\036\030\206\230\003*\024t\013u\227;\250\303}\254\260\216\205:\270\2526i\013\302\n\036\010\006\020\014\030\206\230\003*\024\347\306l\035\202\267wh\002\372\361^\341\037\271\372\362z\273\225\n\036\010\004\020\010\030\206\230\003*\024\230\371G\325\321\3550\274[\316v{\260\t\224\205\021\010\232\232\n\036\010\002\020\004\030\206\230\003\"\024\365k\203\t\254J5\353\t\354\347\210\013\231u\0014\327\344 \0322\n\026sequence/in/qstarsrace\022\024#^\002\260,\005\"\000H\316\033\207\371\302\354%<\326\232\200\030\206\230\003" height:26115 "\217\233-\027\n#\n\003qcp\022\034\n\032\010\206\230\003\022\024G0j\275\216\217\233R1\202\017\326\263\242\317\210\367fx\326\022\003qcp\032\227\002\n\037\010\024\020\224\005\030\206\230\003*\024\031\251wE;r[\017\332\367\000\205j\3173\277\241\242\207H\n\037\010\020\020\344\001\030\206\230\003*\024\316\310\235P\307\032\224+\022\314\025\350GO\014\262\355\214\310\356\n\036\010\014\020H\030\206\230\003*\024\356v^\033\007\235Q0j\246\210\212\022,&\\R\350\231\225\n\036\010\n\020\036\030\206\230\003*\024t\013
I[11-19|01:53:42.397] HTTPJSONRPC module=rpc-server method=abci_query args="[/store/qcp/key <common.HexBytes Value> ]" returns="[<*core_types.ResultABCIQuery Value> ]"
I[11-19|01:53:42.397] Served RPC HTTP response module=rpc-server method=POST url=/ status=200 duration=0 remoteAddr=172.19.222.66:58718
I[11-19|01:53:42.399] ABCIQuery module=rpc path=/store/qcp/key data=73657175656E63652F6F75742F71737461727372616365 result="key:"sequence/out/qstarsrace" value:"\216\005" proof:"\315\003\n#\n\003acc\022\034\n\032\010\206\230\003\022\0248\276\301B\265\376\314\331\310v\203\034\217\315\372$d\204\302\342\n$\n\004base\022\034\n\032\010\206\230\003\022\024\2721!\300v\246\334\223T\0023\020\215>p[x\204\3553\n\021\n\007approve\022\006\n\004\010\206\230\003\n)\n\tvalidator\022\034\n\032\010\206\230\003\022\024w\264\002\003\326\254y\354\222\264\375\370c\010ku\227;\250\303}\254\260\216\205:\270\2526i\013\302\n\036\010\006\020\014\030\206\230\003*\024\347\306l\035\202\267wh\002\372\361^\341\037\271\372\362z\273\225\n\036\010\004\020\010\030\206\230\003\"\0241u\211\352\357\215\370u\227;\250\303}\254\260\216\205:\270\2526i\013\302\n\036\010\006\020\014\030\206\230\003*\024\347\306l\035\202\267wh\002\372\361^\341\037\271\372\362z\273\225\n\036\010\004\020\010\030\206\230\003\"\0241u\211\352\357\215\370`\265\307)\215\035\347\206\234#!'b\n\036\010\002\020\004\030\206\230\003*\024\225P\251\177\372\236l(\277\005zRiV\253J\235\\\310w\0323\n\027sequence/out/qstarsrace\022\024#^\002\260,\005\"\000H\316\033\207\371\302\354%<\326\232\200\030\206\230\003" height:26115 "\\265\\307)\\215\\035\\347\\206\\234#!'b\\n\\036\\010\\002\\020\\004\\030\\206\\230\\003*\\024\\225P\\251\\177\\372\\236l(\\277\\005zRiV\\253J\\235\\\\\\310w\\0323\\n\\027sequence/out/qstarsrace\\022\\024#^\\002\\260,\\005\\\"\\000H\\316\\033\\207\\371\\302\\354%<\\326\\232\\200\\030\\206\\230\\003\" height:26115 " I[11-19|01:53:42.399] HTTPJSONRPC module=rpc-server method=abci_query args="[/store/qcp/key <common.HexBytes Value> <int64 Value> <bool Value>]" returns="[<*core_types.ResultABCIQuery Value> <error Value>]" I[11-19|01:53:42.399] Served RPC HTTP response module=rpc-server method=POST url=/ status=200 duration=0 remoteAddr=172.19.222.67:37880 I[11-19|01:53:42.400] ABCIQuery module=rpc path=/store/qcp/key data=74782F6F75742F717374617273726163652F333237 result="key:\"tx/out/qstarsrace/327\" value:\"\\374/\\361W\\n\\201\\001\\np\\001\\275\\002#\\n+B\\023\\n\\010qcp.from\\022\\007qosraceB\\024\\n\\006qcp.to\\022\\nqstarsrace\\020\\216\\005\\032:heigth:26470,hash:0F8787CB59C90E33893F53C042B8165D428AA590\\032\\nqstarsrace\\\"\\0010\\022\\007qosrace\\032\\nqstarsrace \\216\\0050\\206\\230\\003@\\001\" proof:\"\\254\\004\\n#\\n\\003acc\\022\\034\\n\\032\\010\\206\\230\\003\\022\\0248\\276\\301B\\265\\376\\314\\331\\310v\\203\\034\\217\\315\\372$d\\204\\302\\342\\n$\\n\\004base\\022\\034\\n\\032\\010\\206\\230\\003\\022\\024\\2721!\\300v\\246\\334\\223T\\0023\\020\\215>p[x\\204\\3553\\n\\021\\n\\007approve\\022\\006\\n\\004\\010\\206\\230\\003\\n)\\n\\tvalidator\\022\\034\\n\\032\\010\\206\\230\\003\\022\\024w\\264\\002\\003\\326\\254y\\354\\222\\264\\375\\370c\\010k~\\217\\233-\\027\\n#\\n\\003qcp\\022\\034\\n\\032\\010\\206\\230\\003\\022\\024G0j\\275\\216\\217\\233R1\\202\\017\\326\\263\\242\\317\\210\\367fx\\326\\022\\003qcp\\032\\366\\002\\n\\037\\010\\024\\020\\224\\005\\030\\206\\230\\003\\\"\\024\\301P\\376\\342\\234\\364\\005\\214\\203p7r\\242\\346D\\315\\025\\235\\ns\\n\\037\\010\\022\\020\\260\\003\\030\\206\\230\\003\\\"\\024\\202\\032\\245C\\250\\250p\\036VkX\\3421\\366\\014\\354\\177\\326g\\357\\n\\037\\010\\020\\020\\322\\001\\030\\206\\230\\003*\\024\\027\\273z}\\002nj=\\330\\361S\\033\\244\\255\\276\\356i\\000\\364\\331\\n\\036\\010\\016\\020f\\030\\206\\230\\003\\\"\\024\\t>\\321\\252cg@\\271\\374\\214{\\031N\\223\\222\\247*\\257\\3573\\n\\036\\010\\014\\0208\\030\\206\\230\\003*\\024J\\006\\310\\252\\201K\\307[\\247\\024v\\314\\356\\217\\363\\\\u3\\020n\\n\\036\\010\\n\\020 \\030\\206\\230\\003*\\024aI'\\224\\202\\242\\223\\326\\003
Vl|\304;\020\240\343D-\n\036\010\010\020\022\030\206\230\003\"\024\3602S\031=\337\000\342\031\245q\270\331\304\226\257\267\357\237?\n\036\010\006\020\n\030\206\230\003\"\024Q;P\177\"\326\214\330\210\331t\367\353\020\200iY8\032\345\n\036\010\004\020\006\030\206\230\003\"\024\006\026-x1\030@%\253S\227+=\244\026t'aJ\n\036\010\002\020\004\030\206\230\003\"\024/05@P\356s-\r\006\367\216\236:\320t|\204Q\242\0321\n\025tx/out/qstarsrace/327\022\024\014\324B\330\205C]\204T\322\265\262?\0344\330\002\027\332\213\030\206\230\003" height:26115 "\217\233-\027\n#\n\003qcp\022\034\n\032\010\206\230\003\022\024G0j\275\216\217\233R1\202\017\326\263\242\317\210\367fx\326\022\003qcp\032\227\002\n\037\010\024\020\224\005\030\206\230\003*\024\031\251wE;r[\017\332\367\000\205j\3173\277\241\242\207H\n\037\010\020\020\344\001\030\206\230\003*\024\316\310\235P\307\032\224+\022\314\025\350GO\014\262\355\214\310\356\n\036\010\014\020H\030\206\230\003*\024\356v^\033\007\235Q0j\246\210\212\022,&\\R\350\231\225\n\036\010\n\020\036\030\206\230\003*\024t\013
I[11-19|01:53:42.400] HTTPJSONRPC module=rpc-server method=abci_query args="[/store/qcp/key <common.HexBytes Value> ]" returns="[<*core_types.ResultABCIQuery Value> ]"
I[11-19|01:53:42.400] Served RPC HTTP response module=rpc-server method=POST url=/ status=200 duration=0 remoteAddr=172.19.222.67:37880
I[11-19|01:53:42.403] ABCIQuery module=rpc path=/store/qcp/key data=73657175656E63652F6F75742F71737461727372616365 result="key:"sequence/out/qstarsrace" value:"\216\005" proof:"\315\003\n#\n\003acc\022\034\n\032\010\206\230\003\022\0248\276\301B\265\376\314\331\310v\203\034\217\315\372$d\204\302\342\n$\n\004base\022\034\n\032\010\206\230\003\022\024\2721!\300v\246\334\223T\0023\020\215>p[x\204\3553\n\021\n\007approve\022\006\n\004\010\206\230\003\n)\n\tvalidator\022\034\n\032\010\206\230\003\022\024w\264\002\003\326\254y\354\222\264\375\370c\010k
I[11-19|01:53:42.403] HTTPJSONRPC module=rpc-server method=abci_query args="[/store/qcp/key <common.HexBytes Value> ]" returns="[<core_types.ResultABCIQuery Value> ]"
I[11-19|01:53:42.403] Served RPC HTTP response module=rpc-server method=POST url=/ status=200 duration=0 remoteAddr=172.19.222.67:37880
I[11-19|01:53:42.404] ABCIQuery module=rpc path=/store/qcp/key data=73657175656E63652F696E2F71737461727372616365 result="key:"sequence/in/qstarsrace" value:"\216\005" proof:"\314\003\n#\n\003acc\022\034\n\032\010\206\230\003\022\0248\276\301B\265\376\314\331\310v\203\034\217\315\372$d\204\302\342\n$\n\004base\022\034\n\032\010\206\230\003\022\024\2721!\300v\246\334\223T\0023\020\215>p[x\204\3553\n\021\n\007approve\022\006\n\004\010\206\230\003\n)\n\tvalidator\022\034\n\032\010\206\230\003\022\024w\264\002\003\326\254y\354\222\264\375\370c\010k~\217\233-\027\n#\n\003qcp\022\034\n\032\010\206\230\003\022\024G0j\275\216\217\233R1\202\017\326\263\242\317\210\367fx\326\022\003qcp\032\226\002\n\037\010\024\020\224\005\030\206\230\003\024\031\251wE;r[\017\332\367\000\205j\3173\277\241\242\207H\n\037\010\020\020\344\001\030\206\230\003*\024\316\310\235P\307\032\224+\022\314\025\350GO\014\262\355\214\310\356\n\036\010\014\020H\030\206\230\003*\024\356v^\033\007\235Q0j\246\210\212\022,&\\R\350\231\225\n\036\010\n\020\036\030\206\230\003*\024t\013~u\227;\250\303}\254\260\216\205:\270\2526i\013\302\n\036\010\006\020\014\030\206\230\003*\024\347\306l\035\202\267wh\002\372\361^\341\037\271\372\362z\273\225\n\036\010\004\020\010\030\206\230\003*\024\230\371G\325\321\3550\274[\316v{\260\t\224\205\021\010\232\232\n\036\010\002\020\004\030\206\230\003\"\024\365k\203\t\254J5\353\t\354\347\210\013\231u\0014\327\344 \0322\n\026sequence/in/qstarsrace\022\024#^\002\260,\005\"\000H\316\033\207\371\302\354%<\326\232\200\030\206\230\003" height:26115 "
I[11-19|01:53:42.404] HTTPJSONRPC module=rpc-server method=abci_query args="[/store/qcp/key <common.HexBytes Value> ]" returns="[<*core_types.ResultABCIQuery Value> ]"
I[11-19|01:53:42.404] Served RPC HTTP response module=rpc-server method=POST url=/ status=200 duration=0 remoteAddr=172.19.222.67:37710
max_validators
vote_cycle
vote_min_per_cycle
inactive__time
qoscli query store --path /store/validator/subspace --data validator
序列化出错
ERROR: Cannot encode unregistered concrete type []block.kvPairResult.
可否在BuildInactiveValidatorKeyByTime的时候就计算close的时间组成key,这样即使以后不同的原因造成inactive,也可以设置不同的survivalSecs,closeExpireInactiveValidator方法不再需要survivalSecs作为参数,直接按顺序close即可,不再需要遍历计算, @TokenxyWZY @kauchy
查询不存在的approve时返回
{"from":"address1ah9uz0","to":"address1ah9uz0","qos":"0","qscs":null}
qosd add-genenis-account、qoscli tx transfer 、qoscli tx create approve 中有关coins格式保持一致
--path-qsc 修改为--qsc.crt
--path-bank 修改为--banker.crt
Banker,CAbanker可以为空
1.i == len(accnt.QSCs)-1不需要特殊处理
2.不存在直接返回原始账户
最小化的经济模型实现
下一版本增加此功能
我们可以在改进后续版本的经济模型时考虑这样一个问题:
假设非验证人的全节点无法接受其他节点的代理,那么如果验证人总数有限制,且数量较少,造成绑定token门槛较高时,全节点往往无法通过自绑定token排序来达到成为验证人的要求。
但如果每块验证人较少,又可以提高出块的效率。
可否考虑这样一种机制,持有较少的token也可以成为验证人,但并非需要验证每一块,且验证块的机会相对公平。
当然也可以考虑让持有较少token的节点先成为验证人,在一定时间后再判断其是否达到绑定要求。
之前版本app_message打印的是genesis.json app_state中accounts账户信息,这个现在打印的不对
1.operator和validator key区分
2.不需要在keybase中初始化未使用的账户
3.初始化account地址可以通过参数传入
1.tx.BankerCA可以为空
2.banker和Accounts可能会已经存在,不能直接NewAccount
3.需要检查Qcp ChainID是否已经存在
以后交易越来越多,总是更新代码不现实,能否做个可以发布交易的交易。可以考虑WASM
createqsc bankerCA可以为空
发币时先检查bankerCA是否为空
方案1:按stake给所有active validator奖励
可能存在一种弊端,即validator可以一直不签块,却能通过reactivateTX一直获得收益<-是cosmos现在的做法
方案2:按validator上一块是否有签名分配奖励
弊端,有些validator可能只是网络问题没有签上,却受到了惩罚
@datalj @kauchy @TokenxyWZY
[qstars@testnet006 cmd]$ ./qosappcli -m=txissue -qscname=QSC -nonce=1 -qoschainid=qos -maxgas=100 -amount=20000
tx result: &{65537 {"codespace":1,"code":1,"abci_code":65537,"message":"chainId not match. expect: qosrace , actual: qos"} 58BD78C398B2EFCC5758E1995098BC58B636C9BB}
"spo_config": {
"total_amount": "10000000000",
"total_block": "6307200"
},
"stake_config": {
"max_validator_cnt": 10,
"voting_status_len": 100,
"voting_status_least": 50,
"survival_secs": "600"
}
1.qbase中coins基本操作能不能同意处理了
2.TxIssueQSC、TxTransfer、Approve需要保持一致
当转账交易超时时候,需要调用此接口。通过tx hash
创建后,QOS主链上查询不到这个新建的联盟链
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.