GolosChain / golos

Socio-economic mediablockchain
https://developers.golos.io
Other
59 stars 36 forks source link

Beneficiaries aren't working in Golos? #285

Closed pmartynov closed 6 years ago

pmartynov commented 6 years ago

Trying to create a post with beneficiaries on a fresh Golos testnet. Sending the following transaction that works on Steem:

json: https://gist.github.com/pmartynov/ed52158a325e047af1fa7bf67277d3a4

serialized: 5876894a41e6361bde2e73278f07340f2eb8b41c2facd29099de9deef6cdb6792d2670a3d07ea2ca0e5a02290004746573740b6a6f736570682e6b616c752a746573742d776974682d62656e6566696369617269652d323031372d31312d31372d31312d33392d3439167465737420776974682062656e6566696369617269656b687474703a2f2f7974332e67677068742e636f6d2f2d5a37614c56573149686b512f41414141414141414141492f41414141414141414141412f6b3534722d48674b644a632f733930302d632d6b2d6e6f2d6d6f2d726a2d6330786666666666662f70686f746f2e6a7067257b22617070223a20226469746368202f20322e322e3132222c202274616773223a205b5d7d390b6a6f736570682e6b616c752a746573742d776974682d62656e6566696369617269652d323031372d31312d31372d31312d33392d343900ca9a3b0000000003474247000000001027010101000109737465657073686f74e80300

However, in Golos the response is 3030000 basic_exception: rity\nMissing Posting Authority joseph.kalu

The same transaction works in Golos correctly without comment_options. Is there an issue with the structure of this transaction or with the Golos blockchain?

asuleymanov commented 6 years ago

Могу предположить что это работать не будет с кодом из Steem. Вот из-за этого параметра "max_accepted_payout": "1000000.000 GBG", У них поменялась структура сериализации asset. По идее это можно посмотреть вот тут https://github.com/GolosChain/golos/issues/259 Там разработчик @Nemo1369 описал как именно у них поменялось.

nemothenoone commented 6 years ago

@pmartynov It is not about the beneficiaries, only about asset serialisation. I've described these changes in #259.

KorzunAV commented 6 years ago

Да, проблеммы была в работе с asset. Продублирую сюда ответ:

Just to solve the trouble for now. Changes are all about asset precision and ticker name serialisation. Version 16 had asset serialisation like 1000 | \x03 | GOLOS <=> amount | precision_decimals | ticker_name <=> 8 bytes | 1 byte | 6 bytes. Now it is 1000 | GOLOS | \x03 <=> amount | ticker_name | decimals <=> 8 bytes | 16 bytes | 1 byte.

So all the operations contained asset, price, price_feed, chain_properties structures needs to be updated.

От себя добавлю, что ранее наименование валюты кодировалось как UTF8 и добивалось нулями до длинны в 6 байт. Сейчас - сначала переводится в UpperCase - потом, как стандартная строка, кодируется в UTF8 (в буфер записывается итоговое количество байт текста, а потом и сам текст).

Пример: 1000000.000 GBG 1000000.000 => 1000000000 > |00|ca|9a|3b|00|00|00|00| GBG > |47|42|47| (GBG in UTF8) => |47|42|47|00|00|00| (in hf 16) => |03|47|42|47| (in hf 17) 1000000.000 (precision length = 3 digit) => 3 > |03| Итого:

hf 16: value____precision____currency 00|ca|9a|3b|00|00|00|00||03||47|42|47|00|00|00|00|

hf 17: value___currency_precision
00|ca|9a|3b|00|00|00|00||03|47|42|47||03|

nemothenoone commented 6 years ago

@KorzunAV The decimals part is not about the length of an asset ticker. It is about the asset precision.

nemothenoone commented 6 years ago

@pmartynov I would really appreciate if you have had reported if the fix is fine.

pmartynov commented 6 years ago

@Nemo1369 yes, it is fine