hive issueshttps://gitlab.syncad.com/groups/hive/-/issues2024-02-05T11:56:39Zhttps://gitlab.syncad.com/hive/clive/-/issues/146TUI - Operations cart - three lines are not always enough to show the operati...2024-02-05T11:56:39ZAleksandra GrabowskaTUI - Operations cart - three lines are not always enough to show the operation detailsOperations cart - three lines are not always enough to show the operation details, for example transfer with long memo (may be up to 2048).
The problem doesn't occur on the summary screen.
For sure the problem may occur for transfer,...Operations cart - three lines are not always enough to show the operation details, for example transfer with long memo (may be up to 2048).
The problem doesn't occur on the summary screen.
For sure the problem may occur for transfer, transfer to savings and transfer form savings (they have a memo), but other operations should be checked.
Now:
If the memo is too long, only the part of memo is shown.
![image](/uploads/7a83f13919c1b7da8afccb03a9bdf091/image.png)
Should be:
The whole memo should be visible for a user.MVP - Minimum Viable Producthttps://gitlab.syncad.com/hive/schemas/-/issues/23AccountUpdate2Operation fields json_metadata and posting_json_metadata can't ...2024-02-19T14:28:15ZMarcin SobczykAccountUpdate2Operation fields json_metadata and posting_json_metadata can't be NoneIn AccountUpdate2Operation fields json_metadata and posting_json_metadata have types str | None (with default None). But it seems that those fields can't be None - its not valid operation with None (it could be empty string for example),...In AccountUpdate2Operation fields json_metadata and posting_json_metadata have types str | None (with default None). But it seems that those fields can't be None - its not valid operation with None (it could be empty string for example), blockchain doesn't accept transactions with those fields set to None.
```
│ Unhandled exception WaxOperationFailedError: 7 bad_cast_exception: Bad Cast │
│ Invalid cast from type 'null_type' to Object │
│ {"type":"null_type"} │
│ variant.cpp:575 get_string │
│ │
│ {} │
│ json_string.hpp:93 from_variant
```
Maybe there is more similar issues in other operations with json metadata. Its a bug but low priorityhttps://gitlab.syncad.com/hive/wax/-/issues/13Expose memo encryption/decryption functionality2024-03-06T22:05:53ZBartek WronaExpose memo encryption/decryption functionalityBasing on work done in https://gitlab.syncad.com/hive/hive/-/merge_requests/1199
specifically here: https://gitlab.syncad.com/hive/hive/-/merge_requests/1199/diffs#c8152eb0328cadd77a4a810f08417c25c3ba15d7_86_86
let's make a wrappers insi...Basing on work done in https://gitlab.syncad.com/hive/hive/-/merge_requests/1199
specifically here: https://gitlab.syncad.com/hive/hive/-/merge_requests/1199/diffs#c8152eb0328cadd77a4a810f08417c25c3ba15d7_86_86
let's make a wrappers inside core part of wax module and then expose them into python and WASM interfacesMateusz TyszczakMateusz Tyszczakhttps://gitlab.syncad.com/hive/clive/-/issues/145Rewrite "find_proposal" and "find_witness" to use CommandDataRetrieval and re...2024-01-29T13:25:35ZMarcin SobczykRewrite "find_proposal" and "find_witness" to use CommandDataRetrieval and return Proposal/Witness models from cliveCurrently we use Proposal/Witness model from schemas. Using model from clive would allow us to make data formatting in one place, we use clive models already in "retrieve_proposals_data" and "retrieve_witnesses_data", all those commands ...Currently we use Proposal/Witness model from schemas. Using model from clive would allow us to make data formatting in one place, we use clive models already in "retrieve_proposals_data" and "retrieve_witnesses_data", all those commands could be unified and return same model. Currently there is![Clipboard_-_January_29__2024_2_09_PM](/uploads/3ec8ab9eb70346281e01fcb0369039f2/Clipboard_-_January_29__2024_2_09_PM.png) but this could be written similarily as in class WitnessesDataRetrieval(CommandDataRetrieval[HarvestedDataRaw, SanitizedData, WitnessesData])https://gitlab.syncad.com/hive/hive/-/issues/650Prepare documentation describing offerred functionality and blockchain storag...2024-03-27T18:21:04ZBartek WronaPrepare documentation describing offerred functionality and blockchain storage details for blockchain standard extension operations like follows, rc_delegation etcAll operations being part of Hive application stack like:
- [ ] follow
- [ ] notify
- [ ] reblog
- [ ] community
- [ ] badges
- [ ] rc_delegation
are generated into blockchain using `custom_json_operation`
We need to describe functiona...All operations being part of Hive application stack like:
- [ ] follow
- [ ] notify
- [ ] reblog
- [ ] community
- [ ] badges
- [ ] rc_delegation
are generated into blockchain using `custom_json_operation`
We need to describe functionality offered by each one like potential working modes and expected behavior.
Probably as a source for all of them (except `rc_delegation`) is a Hivemind source code, for example:
https://gitlab.syncad.com/hive/hivemind/-/blob/develop/hive/indexer/custom_op.py?ref_type=heads
https://gitlab.syncad.com/hive/hivemind/-/blob/develop/hive/indexer/follow.py?ref_type=headsPost 1.27.5Aleksandra GrabowskaAleksandra Grabowskahttps://gitlab.syncad.com/hive/balance_tracker/-/issues/16Eliminate CI nightmare2024-03-06T09:38:19ZBartek WronaEliminate CI nightmare- do we really need separate images for psql-client and final balance tracker app? Probably just final image should be sufficient as it should serve all execution paths: setup, block process and finally REST application server
- CI perfo...- do we really need separate images for psql-client and final balance tracker app? Probably just final image should be sufficient as it should serve all execution paths: setup, block process and finally REST application server
- CI performs HAF replay (prepare_haf_data) even haf version didn't change and it should have stored data on CI cache
- every testing job should be supplemented by timeout call, to fail when its execution takes too long. This will allow to gather artifacts and analyze the problemKonrad BotorKonrad Botorhttps://gitlab.syncad.com/hive/hivemind/-/issues/228hivemind makes several global changes to database that are mildy questionable2024-03-27T03:17:40ZDan Notesteinhivemind makes several global changes to database that are mildy questionableProbably disables JIT, also likely forces planner to look at up to 16 joins. At some point we should reassess.Probably disables JIT, also likely forces planner to look at up to 16 joins. At some point we should reassess.JulyHivemindhttps://gitlab.syncad.com/hive/hive/-/issues/649Get rid of the obsolete plugins / configuration options2024-01-25T23:06:59ZGandalfGet rid of the obsolete plugins / configuration optionsThere are few old configuration options and related plugins that we should get rid of to keep things simple and clean. For instance:
```
--follow-max-feed-size arg (=500)
Set the maximum size of cached feed for an account
...There are few old configuration options and related plugins that we should get rid of to keep things simple and clean. For instance:
```
--follow-max-feed-size arg (=500)
Set the maximum size of cached feed for an account
--follow-start-feeds arg (=0)
Block time (in epoch seconds) when to start calculating feeds
```
```
--tags-start-promoted arg (=0)
Block time (in epoch seconds) when to start calculating promoted content. Should be 1 week prior to current
time.
--tags-skip-startup-update
Skip updating tags on startup. Can safely be skipped when starting a previously running node. Should not be
skipped when reindexing.
```
and related tags and follow plugins.
Also some more cleanup needed for other deprecated options:
```
--stop-replay-at-block arg
[ DEPRECATED ] Stop replay after reaching given block number
--exit-after-replay
[ DEPRECATED ] Exit after reaching given block number
--force-validate
Force validation of all transactions. Deprecated in favor of p2p-force-validate
```
Anything more?HF-28https://gitlab.syncad.com/hive/hive/-/issues/648Eliminate datadir copy from regular docker_entrypoint2024-03-06T09:16:17ZBartek WronaEliminate datadir copy from regular docker_entrypoint`copy_datadir` spawn is specific to CI testing only and it should be part of `.prepare_hived_data_5m` base. Similar case is in HAF.
https://gitlab.syncad.com/hive/hive/-/blob/develop/docker/docker_entrypoint.sh?ref_type=heads#L15`copy_datadir` spawn is specific to CI testing only and it should be part of `.prepare_hived_data_5m` base. Similar case is in HAF.
https://gitlab.syncad.com/hive/hive/-/blob/develop/docker/docker_entrypoint.sh?ref_type=heads#L15Konrad BotorKonrad Botorhttps://gitlab.syncad.com/hive/HAfAH/-/issues/49Historical HP equivalent of the VESTS2024-01-22T13:27:20ZMahdi YariHistorical HP equivalent of the VESTSIn certain operations like `withdraw_vesting` we have VESTS that we can possibly include their HP equivalent in the returned AH call. Front-ends use the current vests/hp ratio which results in wrong value displayed for the HP. We have th...In certain operations like `withdraw_vesting` we have VESTS that we can possibly include their HP equivalent in the returned AH call. Front-ends use the current vests/hp ratio which results in wrong value displayed for the HP. We have the data in HAF for fixing this problem.https://gitlab.syncad.com/hive/clive/-/issues/140Test - TUI - Loading a transaction from a file2024-01-19T14:26:31ZAleksandra GrabowskaTest - TUI - Loading a transaction from a file### Test cases - Saving a transaction
##### Preconditions:
1. The user starts on the Dashboard view.
2. There is a created profile.
3. The transaction contains always one transfer.
4. For each test there are following files needed:
- ...### Test cases - Saving a transaction
##### Preconditions:
1. The user starts on the Dashboard view.
2. There is a created profile.
3. The transaction contains always one transfer.
4. For each test there are following files needed:
- tr_sign.json
- tr_sign.bin
- tr_unsign.json
- tr_unsign.bin
#### I. Test cases: Clive is activate and there is a defined key in the profile.
* [ ] 1.1. The user loads the file tr_sign.json and broadcasts it.
* [ ] 1.2. The user loads the file tr_sign.bin and broadcasts it.
* [ ] 1.3. The user loads the file tr_unsign.json and broadcasts it.
* [ ] 1.4. The user loads the file tr_unsign.bin and broadcasts it.
To check:
1. If the transaction is signed, there should be a message: "This transaction is already signed."
2. If the transaction is not signed,there should be "Sign with key:"
3. There should be a name of the file on the view.
4. It should be possible to broadcast the transaction.
#### II. Test cases: Clive is inactivate and there is a defined key in the profile.
* [ ] 2.1. The user loads the file tr_sign.json and broadcasts it.
* [ ] 2.2. The user loads the file tr_sign.bin and broadcasts it.
* [ ] 2.3. The user loads the file tr_unsign.json and broadcasts it.
* [ ] 2.4. The user loads the file tr_unsign.bin and broadcasts it.
To check:
1. The signed transaction - it should be possible to broadcast without activation a profile.
2. The unsigned transaction - before broadcasting clive should ask about profile activation.
#### III. Test cases: Clive is activate and there is no defined key in the profile.
* [ ] 3.1. The user loads the file tr_sign.json and broadcasts it.
* [ ] 3.2. The user loads the file tr_sign.bin and broadcasts it.
* [ ] 3.3. The user loads the file tr_unsign.json and tries to broadcast it.
* [ ] 3.4. The user loads the file tr_unsign.bin and tries to broadcast it.
To check:
1. The signed transaction - it should be possible to broadcast without a define key.
2. The unsigned transaction - the error message is displayed.
#### IV. Test cases: Clive is inactivate and there is no defined key in the profile.
* [ ] 4.1. The user loads the file tr_sign.json and broadcasts it.
* [ ] 4.2. The user loads the file tr_sign.bin and broadcasts it.
* [ ] 4.3. The user loads the file tr_unsign.json and tries to broadcast it.
* [ ] 4.4. The user loads the file tr_unsign.bin and tries to broadcast it.
To check:
1. The signed transaction - it should be possible to broadcast without a define key.
2. The unsigned transaction - the error message is displayed.https://gitlab.syncad.com/hive/clive/-/issues/139Test - TUI - Saving a transaction2024-01-19T14:27:26ZAleksandra GrabowskaTest - TUI - Saving a transaction### Test cases - Saving a transaction
##### Preconditions:
1. The user starts on the Dashboard view.
2. There is a created profile.
3. The transaction contains always one transfer.
#### I. Test cases: Clive is activate and there is a...### Test cases - Saving a transaction
##### Preconditions:
1. The user starts on the Dashboard view.
2. There is a created profile.
3. The transaction contains always one transfer.
#### I. Test cases: Clive is activate and there is a defined key in the profile.
Remark:
The transaction contains one transfer.
* [ ] 1.1. The user saves a transaction with signature in the json format.
* [ ] 1.2. The user saves a transaction without signature in the json format.
* [ ] 1.3. The user saves a transaction with signature in the binary format.
* [ ] 1.4. The user saves a transaction without signature in the binary format.
To check:
1. The transaction is saved correctly (we can discuss how to check...)
#### II. Test cases: Clive is inactivate and there is a defined key in the profile.
Remark:
The transaction contains one transfer.
* [ ] 2.1. The user saves a transaction with signature in the json format.
* [ ] 2.2. The user saves a transaction without signature in the json format.
* [ ] 2.3. The user saves a transaction with signature in the binary format.
* [ ] 2.4. The user saves a transaction without signature in the binary format.
To check:
1. In case 2.1 and 2.3 clive should ask about activation.
2. The transaction is saved correctly (we can discuss how to check...).
#### III. Test cases: Clive is activate and there is no defined key in the profile.
Remark:
The transaction contains one transfer.
* [ ] 3.1. The user saves a transaction with signature in the json format (impossible - validation).
* [ ] 3.2. The user saves a transaction without signature in the json format.
* [ ] 3.3. The user saves a transaction with signature in the binary format (impossible - validation).
* [ ] 3.4. The user saves a transaction without signature in the binary format.
To check:
1. The transaction is saved correctly if saved (we can discuss how to check...).
#### IV. Test cases: Clive is inactivate and there is no defined key in the profile.
Remark:
The transaction contains one transfer.
* [ ] 4.1. The user saves a transaction with signature in the json format (impossible - validation).
* [ ] 4.2. The user saves a transaction without signature in the json format.
* [ ] 4.3. The user saves a transaction with signature in the binary format (impossible - validation).
* [ ] 4.4. The user saves a transaction without signature in the binary format.
To check:
1. The transaction is saved correctly if saved (we can discuss how to check...).https://gitlab.syncad.com/hive/clive/-/issues/138Test - TUI - Onboarding2024-02-02T14:15:27ZAleksandra GrabowskaTest - TUI - Onboarding### Test cases - Onboarding
##### Preconditions:
1. There is no created profile.
#### I. Test cases
* [ ] 1. The user goes through the onboarding process without adding a key and creates a profile.
To check:
1. The profile is create...### Test cases - Onboarding
##### Preconditions:
1. There is no created profile.
#### I. Test cases
* [ ] 1. The user goes through the onboarding process without adding a key and creates a profile.
To check:
1. The profile is created.
* [ ] 2. The user goes through the onboarding proces, adds a key and creates a profile.
To check:
1. The profile is created.
2. The key are added (you can check it on Config view).MVP - Minimum Viable Producthttps://gitlab.syncad.com/hive/denser/-/issues/219Specific post devastates the app2024-01-19T11:34:43ZGandalfSpecific post devastates the appHow's that possible that a single post that I try to open can devastate the whole website?
Example:
https://blog.openhive.network/hive-158489/@satoru-raiden/my-favorite-dragon-ball-character-gohanHow's that possible that a single post that I try to open can devastate the whole website?
Example:
https://blog.openhive.network/hive-158489/@satoru-raiden/my-favorite-dragon-ball-character-gohanhttps://gitlab.syncad.com/hive/clive/-/issues/137Test - TUI - Config - Manage key aliases2024-02-02T14:15:50ZAleksandra GrabowskaTest - TUI - Config - Manage key aliases### Test cases - Config - Manage key aliases
##### Preconditions:
1. The user starts on the Dashboard view.
2. There is a created profile.
#### I. Test cases: Clive is activate and there is a defined key in the profile.
* [ ] 1. The ...### Test cases - Config - Manage key aliases
##### Preconditions:
1. The user starts on the Dashboard view.
2. There is a created profile.
#### I. Test cases: Clive is activate and there is a defined key in the profile.
* [ ] 1. The user removes an alias and the alias is removed form TUI (I hope it is possible to check - let me know).
* [ ] 2. The user edits the key alias.
To check:
1. A new alias is displayed on the Transaction summary screen.
* [ ] 3. The user removes an alias and then adds a new alias with the same key (it should be possible).
To check:
1. Before removing the alias, the user has to enter the password.
* [ ] 4. The user removes an alias and then adds a new alias with the different key.
To check:
1. Before removing the alias, the user has to enter the password.
* [ ] 5. The user adds a new alias with the same key. (it should be impossible - there is a validation).
* [ ] 6. The user adds a new alias with different key.
To check:
1. There should be two aliases displayed on the Transaction summary screen.
* [ ] 7. The user adds a new key from a file.
#### II. Test cases: Clive is activate and there is no defined key in the profile.
* [ ] 1. The user adds a key using TUI.
* [ ] 2. The user adds a new key from a file.
* [ ] 3. The user adds an alias, then removes an alias and then adds a new alias with the same key (it should be possible).
To check:
1. Before removing the alias, the user has to enter the password.
* [ ] 4. The user adds ans alias, then removes an alias and then adds a new alias with the different key.
To check:
1. Before removing the alias, the user has to enter the password.
### III. Test cases: Clive is inactive.
* [ ] 1. The user cannot go to the view `Manage key aliases`, because it is not accessible.MVP - Minimum Viable Producthttps://gitlab.syncad.com/hive/clive/-/issues/136Test - TUI - Config - Select node2024-02-02T14:15:36ZAleksandra GrabowskaTest - TUI - Config - Select node### Test cases - Config - select node
##### Preconditions:
1. There is a created profile.
2. The user starts on the Dashboard view.
3. There are at least two nodes to be selected.
#### I. Test cases: Clive is activate.
* [ ] 1. The u...### Test cases - Config - select node
##### Preconditions:
1. There is a created profile.
2. The user starts on the Dashboard view.
3. There are at least two nodes to be selected.
#### I. Test cases: Clive is activate.
* [ ] 1. The user changes the node that the user wants to be connected to.
### II. Test cases: Clive is inactive.
* [ ] 1. The user changes the node that the user wants to be connected to.MVP - Minimum Viable Producthttps://gitlab.syncad.com/hive/haf/-/issues/203Can we remove timestamp from hive.operations table?2024-02-29T20:24:10ZDan NotesteinCan we remove timestamp from hive.operations table?AFAIK all operations in a given block have the stame timestamp. And hive.operations has a block_num attached to the block and it has a timestamp, so HAF seems to be storing a bunch of timestamps there for no good reason. There is a creat...AFAIK all operations in a given block have the stame timestamp. And hive.operations has a block_num attached to the block and it has a timestamp, so HAF seems to be storing a bunch of timestamps there for no good reason. There is a created_at timestamp in the block itself (which is always 3s after the timestamp of all the operations, which is probably some meaningless artifact of the way timestamps are being assigned by hived). I suspect we could simply drop the timestamp column in operations table and replace it by created_in timestamp in block (or worst case, replace it after substracting 3s).Post-1.27.5https://gitlab.syncad.com/hive/helpy/-/issues/6Remove pytest-is-running dependency as it is no longer maintained2024-01-15T11:07:48ZMateusz ŻebrakRemove pytest-is-running dependency as it is no longer maintainedIf possible we should get rid of such a dependency, because in the future it may prevent us from updating the pytest version.
In https://github.com/adamchainz/pytest-is-running we can see:
```plaintext
Unmaintained (2024-01-02)
I sto...If possible we should get rid of such a dependency, because in the future it may prevent us from updating the pytest version.
In https://github.com/adamchainz/pytest-is-running we can see:
```plaintext
Unmaintained (2024-01-02)
I stopped maintaining this package as it doesn’t provide much value over checking whether pytest has been imported:
import sys
if "pytest" in sys.modules:
...
In every project I’ve seen, pytest is only imported when running.
```
Was noticed by @wkedzierskihttps://gitlab.syncad.com/hive/haf_api_node/-/issues/9api.hive.blog account history behaviour has changed with Beem2024-02-26T19:19:02ZBrian of Londonapi.hive.blog account history behaviour has changed with BeemSomething has changed with the way api.hive.blog interacts with Beem for the account.history call.
The following two tests give failure with api.hive.blog but deathwing works.
After 5 attempts to connect, Beem gives the following error...Something has changed with the way api.hive.blog interacts with Beem for the account.history call.
The following two tests give failure with api.hive.blog but deathwing works.
After 5 attempts to connect, Beem gives the following error when calling `api.hive.blog`:
```
BlockDoesNotExistsException('output: None of identifier 81907668')
```
The call to `deathwing.me`'s api result in the expected history.
I believe this behaviour changed in the last 15 hours or so.
```
from datetime import datetime, timedelta
import pytz # type: ignore
from beem import Hive # type: ignore
from beem.account import Account # type: ignore
def test_api_hive_blog_fail() -> None:
"""Test if the API is working."""
try:
hive = Hive(node=["https://api.hive.blog"], nobroadcast=True)
today = datetime.now(pytz.utc)
hive_acc = Account("brianoflondon", blockchain_instance=hive)
for item in hive_acc.history(
start=today - timedelta(days=33), only_ops=["transfer_to_vesting"]
):
print(item)
except Exception as error:
print(error)
assert True
def test_deathwing_fail() -> None:
try:
hive = Hive(node=["https://api.deathwing.me"], nobroadcast=True)
today = datetime.now(pytz.utc)
hive_acc = Account("brianoflondon", blockchain_instance=hive)
for item in hive_acc.history(
start=today - timedelta(days=33), only_ops=["transfer_to_vesting"]
):
print(item)
except Exception as error:
print(error)
assert False
```
UPDATE:
I'm adding this here because this code comes from Python again but using @emrebeyler 's Lighthive library. This is a log from a piece of software which hasn't changed in over a year and has run day and night on multiple machines sending Podping custom_jsons:
```
2024-01-14T12:20:16+0000 | INFO | IRI batch_id 6ddc224a-b508-4559-aeba-1e85955666fa - Size of IRIs: 38
2024-01-14T12:20:16+0000 | INFO | Received 1 IRIs
2024-01-14T12:20:20+0000 | ERROR | send_notification error: Request Timeout
2024-01-14T12:20:20+0000 | ERROR | Failed to send 1 IRIs
2024-01-14T12:20:20+0000 | ERROR | Request Timeout
2024-01-14T12:20:20+0000 | WARNING | Malformed error response
2024-01-14T12:20:20+0000 | WARNING | Ignoring node https://api.hive.blog for 3600 seconds
2024-01-14T12:20:20+0000 | INFO | FAILURE COUNT: 1 - RETRYING 1 IRIs
2024-01-14T12:20:21+0000 | INFO | Lighthive Node: https://rpc.podping.org
2024-01-14T12:20:21+0000 | INFO | JSON size: 98
2024-01-14T12:20:21+0000 | INFO | FAILURE CLEARED after 1 retries
```
This code is built to handle failures better so it will ignore `api.hive.blog` but there is definitely something strange going on with it.https://gitlab.syncad.com/hive/hive/-/issues/645Tests - operation in Hive - witness_block_approve_operation2024-03-27T12:50:30ZAleksandra GrabowskaTests - operation in Hive - witness_block_approve_operation### Operation: witness_block_approve_operation, // 16
### Test cases (negative)
##### Preconditions:
1. There are users A and B.
1. User A is not a witness, user B is a witness.
2. Users have enough RC.
##### Test cases
- [ ] 1.1 Us...### Operation: witness_block_approve_operation, // 16
### Test cases (negative)
##### Preconditions:
1. There are users A and B.
1. User A is not a witness, user B is a witness.
2. Users have enough RC.
##### Test cases
- [ ] 1.1 User A (who is not a witness) tries to sign the operation.
- [ ] 1.2 User B (witness) tries to sign the operation using active (not witness) authority.
##### Expected results:
1. An error occurs - the operation is not added to the blockchain.
2. The RC cost is not paid.