[Completed] Aeternity node maintenance - iris hard fork release candidate

Our progress for the last week

Ulf Wiger @uwiger

Ulf worked on issues #3357 - client endpoint for peer pool status and #3283 - expose chain transactions in contract calls, addressing feedback on the PRs, and currently wrapping up debugging of the latter, after also having added events for oracle and aens transactions. Some work has also been done on how to speed up sync. Time spent, 39.8 hrs

Dimitar Ivanov @dimitar.chain

Dimitar fixed the broken OSX package and the rest of his time went into tracking dead peers. Two optimization points were identified: one with more aggressive approach to detecting missing peers and one with parallization of the TCP pings. He worked on the former but tests are still failing. Time spent 35.75h

Hans Svensson @hanssv.chain

His contract state is still unconfirmed and he didn’t spend any time on the project last week.

Dincho Todorov @dincho.chain

Dincho was working on another project and didn’t spend any time on this project last week.

3 Likes

I have updated the PR to expose chain events in contract calls to also include oracle and AENS tx events.

As of now, there aren’t any HTTP API tests for those types of events. The is limited testing of getting the dummy spend and transfer_value events from dry-running contracts in the aehttp_contracts_SUITE. The suite would need to be extended with more types of contract to ensure that e.g. all such events are properly serialized for client (the existing serialization support is used, so the answer should be ‘yes’, but - famous last words…)

cc @karol.chain @marc0olo @gorbak25

3 Likes

Looks very good.

From the user perspective, I assume people would prefer to query this information via function name identical to one in the contract, e.g. Chain.spend and such, as transfer_value is internal (Erlang’s function name doing the actual change).
I guess we shouldn’t expect (non-erlang) users doing this translation or look for some additional mapping in the documentation…

3 Likes

Our progress for the past week

Ulf Wiger @uwiger

Ulf has updated the PR to expose chain events in contract calls. It is now awaiting reviews. Some comments posted in the AE forum will be considered as well.
Investigations into the sync process has revealed the need for parallel evaluation of transactions. Although quite tricky, since preserving the order of accesses to the shared block state is crucial, it’s worth evaluating. Ulf is debugging a prototype implementation, but no firm results yet.

Time spent last week: 42.5 hours

Dimitar Ivanov @dimitar.chain

Finished the more aggressive clean up of missing peers. Had been working on an approach for a faster clean up. No PR yet.

Time spent last week: 46.25 hours

Hans Svensson @hanssv.chain

Hans joined us last week. He participated in discussions but also fixed blockhash issue ( PR ).

Time spent last week: 4 hours

Dincho (@dincho.chain) didn’t work on the project last week.

4 Likes

@karol.chain this is a good idea, although transfer_value in particular is a bit special: it’s the optional value part of a contract call transaction. What should we call that? @hanssv.chain, any ideas?

I have updated the chain events PR in line with the suggestion by @karol.chain above.
Cc @dimitar.chain @hanssv.chain

3 Likes

I don’t have a good suggestion, the value transfer is really a spend, but I think it is worthwhile to be able to distinguish it from a “normal” spend…

The keyattribute is essentially just descriptive, next to the tx.
Currently, it’s named Call.amount.

Call.amount sounds like a good enough name… Remember there could be a number of them in a single contract call, as remote calls can have their own amounts attached to them!

3 Likes

Are you suggesting that there should be some additional info in there?

As long as you can see which account transferred tokens to which account we should be fine :wink:

3 Likes

The PR exposing chain events during contract calls has been approved and merged.
Cc @karol.chain @Arthur @marco.chain @philipp.chain

6 Likes

Hi all,

Our progress for the past week

Ulf Wiger @uwiger

Ulf completed and merged the PR exposing chain events during contract evaluation. He started working on parallel evaluation of transactions, which is a very complex task, but could yield significant speedup, especially during sync. He also started looking into upgrading rocksdb to the latest version, as the erlang support library merged the changes needed to support OTP 23. Time spent: ca 37 hours.

Dimitar Ivanov @dimitar.chain

Dimitar identified two issues in the peer propagation and dead peers detection. Those are fixed in the corresponding PR. Thanks to @gorbak25 there are real life dashboards of two nodes syncing: one with the changes applied, and another without them. What stands out is that even provided with tons of unverified peers, the node recovers and those do not flood in the verified pool of peers. On the contrary, verified peers are aggressively checked and downgraded. Although there is a significant improvement of the outgoing connections, it is yet to be investigated why those do not reach the limit provided (100). Dimitar also spent some time working on persistence of peers. Time spent: 41.3 hours

Hans Svensson @hanssv.chain

Hans pushed PR with a Fix AENS.update signature check. He also did some code reviews and spend a total of 4 hours

Dincho ( @dincho.chain ) didn’t spend any time on this project last week. He will rejoin us this one.

5 Likes

Hi all,

Our progress last week:

Ulf Wiger @uwiger

Ulf spent most of last week working on the parallel eval of txs (#3355), but also moved the rocksdb upgrade forward (#3113). It should be ready to merge today. Time spent: 35.5 hrs

Dimitar Ivanov @dimitar.chain

Dimitar spent some time on persistence of peers. After some data had been aggregated regarding the improvement of peer handling last week, did some debugging based on that. Eventually with some help of @gorbak25 found yet another bug - there are duplicating entries for the same peers. Spent some time fixing that, not ready yet. Time spent: 38.6 hours

Hans Svensson @hanssv.chain

Initiated the AENS expire issue, did some discussions. Time spent: 1h

Dincho Todorov @dincho.chain

Worked on docker images with a strong focus on rocksDB changes. Time spent: 15 hours

5 Likes

Last week’s progress:

Ulf Wiger @uwiger

The Rocksdb upgrade PR ran into some CI-related issues, but has now been merged. Ulf spent most of his time working on the parallel evaluation of transactions. Time spent: 32.5 hours

Dimitar Ivanov @dimitar.chain

Finished the clean up of duplicating peers. Further improvement of the handling of peers had been tested and implemented. This shall finish the dead peers issue. Dimitar spent some time on persistence of peers. Time spent 40 hours.

Hans Svensson @hanssv.chain

Last week he spent some time on the AENS name expiry time. Time spent: 4 hours

Dincho Todorov @dincho.chain

Dincho fixed the CI with regards of Rocksdb. Time spent: 1 hour

6 Likes

Last week’s progress:

Ulf Wiger @uwiger

Ulf participated in PR reviews, and continued working on parallel evaluation of transactions. He also implemented support for passing configuration values via OS environment variables to ease testing and deployment (Issue #3298). The PR is ready for approvals. Time spent: 41 hours.

Dimitar Ivanov @dimitar.chain

Dimitar is doing a massive refactoring of the peer pool handling. This is not ready yet and once done would make peer support easier. This will unlock the peer persistence changes. Time spent: 40 hours.

Hans Svensson @hanssv.chain

Hans did not contribute to the project last week

Dincho Todorov @dincho.chain

Dincho participated in a few meetings and helped Ulf. Time spent: 2 hours.

4 Likes

Thanks to the Core Dev Team for the improvement of the node. The core dev contracts will we extended for the next months.
@Hyperchain Team Thank you for testing/improving the node!
@gorbak25 Thank you for coordinating the work between the hyperchain and core dev team.
A new release roadmap for the both teams will be presented soon.

8 Likes

Hi,

Our progress for the past week:

Ulf Wiger @uwiger

Ulf merged support for configuring Aeternity nodes via OS environment variables, and continued working on parallel evaluation of transactions. Time spent: 36.5 hrs

Dimitar Ivanov @dimitar.chain

Dimitar finished the refactoring of peers and resumed the work on persisted peers. This is almost done, only tests remain. Time spent: 41 hours

Dincho Todorov @dincho.chain

Dincho participated in a few synchronization calls. Time spent: 30 mins

Hans Svensson ( @hanssv.chain) could not contribute to the project last week.

1 Like

Hi,

Our progress from last week:

Ulf Wiger @uwiger

Ulf worked on the parallel evaluation of transactions, and started focusing on improving the presentation of trace output, not least to make Merkle Patricia Trees more readable. Time spent 41 hours.

Dimitar Ivanov @dimitar.chain

Dimitar was working on Peers’ persistence. While so, yet another issue had been found and fixed. The Peer’s persistence is in a PR. Time spent: 39.5h

Hans Svensson @hanssv.chain

Hans started working on AENS pointers. Time spent: 1h

Dincho Todorov @dincho.chain

Dincho improved the CI a bit. Time spent: 1.3h

4 Likes

Hi,

Our progress for the past week:

Ulf Wiger @uwiger

Ulf mostly completed the initial work on parallel evaluation of transactions. There is now a PR available for review. The code is run in the aehttp_contracts_SUITE and appears to work. More testing is required to find out how the implementation performs on real-world data, but initial small-scale performance testing looks promising. Time spent: ca 40 hrs

Dimitar Ivanov @dimitar.chain

Dimitar finished a few issues issue When syncing from backup, accept previous states in DB if they don’t differ#3311, Peer pool persistence #3356. Another task - meta_tx’s TTL #3056 is almost done and its PR is in review already. Dimitar also started working on Info p2p message #3107. Time spent: ca 40.5 hrs

Hans Svensson @hanssv.chain

Hans helped us with a some code reviews and discussions. Time spent: ca 1 hour

Dincho could not contribute to the project this week.

2 Likes