[Rejected] AEproject Improvements Proposal

Hey Guys,

Hope you are well !

Below you could find our updated Aeproject improvement proposal as per the latest template suggested by

Application Status

Status: Rejected on the 27.05.2020
Last updated: 07.05.2020
Team: LimeChain
Approved Budget (in h): N/A
Used Budget (in h): N/A
Planned Delivery: in 10-12 days after start

Value Application

  • Live showcase aepp with state-channels
  • We plan to spent time for our Windows users, so they would have smoother experience
  • We will end up with most up to date version of the Aeproject, which will adopt the latest changes of the JS-SDK

Definition of Terms

Aeproject - contract development kit. Tool for developers which allows its users to easily deploy, compile, run local node & many more.

Status Quo

It has been a while since the last PR was merged in the master branch of our beloved Aeproject. Regrettably, it lagged behind from the latest version of the JS-SDK & the Node version.
Apart, there are people around in the forum which seem to have struggles on working with our CLI smoothly on Windows machines. We would like to take the time to dig around and see what’s causing their issues.

Required Work

AEproject core improvement, community & protocol support
Windows Support

Currently aeproejct is working on windows and it has documentation for requirements for windows usage.
Still, there are some reports from users for issues that we need to investigate. We propose to invest time and trying to reproduce their issues. That will include working closely with the community.

Coffee Shop State Channels Showcase Aepp

Currently the project is outdated. The work needed to be up and running is:

  • Create and aeternity node in the cloud and sync it. The node must has state channels ports exposed.
  • Update the project supporting latest version of SDK, Node and compiler

Estimate

  • 11-12 business days
  • up to 4 days / month for community support

Known Limitations

After the hard fork to Lima we tried to deploy the Coffee shoe aepp, we had struggles to sync our node as we were always connecting to ghost peers, or had experienced timeouts when adding block to the DB.
This lead us to re-start the process all over again, but we never manage to fully sync the node in order to go live.
We need to talk to the core team to see if they have solved the issue.

Outlook

  • Better Windows support
  • Coffee Shop (state-channels showcase aepp)
  • Updating to the latest version of dependencies and fixing bugs is a must for maintaining a tool.
  • Compatibility functionality will save lots of time and struggle for developers.
  • More presence in the community
2 Likes

I love the idea of the better support, updating the aeproject and etc but I don’t think the Coffee Shop demo is worth updating. On the contrary - I think it should be marked as deprecated. It was the bare minimum functionality of off-chain spend transactions. Correct me if I am wrong but it didn’t use contracts and was only useful to show we can open a State Channel and make off-chain updates. It didn’t support any of the SC functionality needed for a proper showcase. The upcoming SC demo would greatly improve this.

On the other hand - what is really needed is aeproject to support State Channels. Currently it doesn’t. For example - if I want to write a State Channel Sophia smart contract - I would need to actually play with it and test it. I can do that in the aeternity node's test framework. I have no idea how non-core developers could do that. This imposes a big entry barrier for State Channel contract development. Since off-chain environment is a bit different, contract development is different as well and this functionality in aeproject would be really helpful.

5 Likes

Thank you @hristiyanAE.chain for applying. Your application has been well received.
Thank you @dimitar.chain for your tech opinion.
All the technical questions, and answers are welcome here.

+1 @dimitar.chain

also interesting to know what @nikitafuchs.chain thinks about this and whether he is integrating state channels into the “fire editor”?

@vishwas_hypermine your opinion on this topic would also be appreciated. thank you!

4 Likes

Can you please specify in hours and per task your estimated work. How many windows users complained about the aeproject and what are the issues? What is included in your community support?

These are the following opinions:

  1. First we need to help the normal devs to quickly adopt the payment channel and state channel concepts. There should be tool on which they can come and simply understand what state channel and payment channel is (and not mixing these two concepts in the beginning) and how to play with it. without having them to install anything

That is what my attempt was by building this lab - A simple to use tool for early devs to learn the concepts. I am close to finish the payment channel part on it. and here is what it could look like - you show them every (or atleast minimal) thing which is going behind the scene.

  1. Now that they know what it is, we should give them two separate use cases (one for payment channel and the other for state channel) and a concrete one (I do not consider coffee shop as a concrete). This is also I tried attempting with this demo I did but yes I could not get chance to work with state channel demos… because of my engagement with startfleet works.

  2. Now that you know what it is and how can implement use cases, time to work on some scalability. May be give write a paper or something so that people can know how to use the concept of channels in highly scalable projects.

I have also some insights on this one :slight_smile:

The point is, no matter how much cool tech we build, in the end, it has to reach mass. and that we can do with simple tools so that they can play and learn :slight_smile:

6 Likes

@YaniUnchained I am with @dimitar.chain on this - and yes absolutely, there will be state channels in the Editor-Currently-Known-as-Fire Editor. The Plan is: First we finish the SC demo and implement all the learnings we as a team currently make during this into the SDK, Node Client and Channel Service (and we learn a ton every day at the moment, which is very fortunate). After we have this solid foundation, it can be taken and used as a boilerplate for everything - which doesn’t mean people will actually know how to do it, but the SC team and I will show with the help of the editor, plus there will be explainer videos and more, but step by step.

In the current state regarding our state channels, I highly doubt there are ways for people outside the SC demo team to catch up with the current state of affairs (I’m even struggling after being gone for 2 days), as things evolve very, very rapidly right now, but after we’re done and the documentations are updated, everybody is of course invited to build upon this solid foundation.

3 Likes

Hey @lydia

Below you could find our respond to the items in question:

  • Can you please specify in hours and per task your estimated work.

    • The more the core team and the JS-SDK develop, the more obsolete the AEProject becomes, on the same wave - the less users would prefer to used it. In that manner we need to adopt the latest changes of the SDK & the node and compiler. We have to investigate what the breaking changes are, where they really break us, and test if everything work as expected eventually. - 4.5 - 5 days
    • Release new version of Aeproject and testing whether everything works smoothly - 1 day
    • Currently there is an open issue here which requires an attention - 0.5 days
    • Another thing outstanding is we have to add a permissive License to the aeproject repo? E.g. ISC or MIT? Could you or some other aeproject developer do that?
    • The rest of the days were intended for the state channels work. (From what I am seeing in the moods above, this does not need to have detailed estimation)
      • After Lima HF we had pretty hard time doing so in one of the biggest cloud providers, so we need to do everything from scratch on another cloud platform, so we need to setup and sync our node from scratch.
      • Bring the Coffee-Shop Aepp back to life.
  • How many windows users complained about the aeproject and what are the issues?

    • it’s been a long since the last topic about windows issue has been posted. I am not sure if this is still outstanding. In the last few months, however, our impressions were, that there were more fixes required on the windows platform.
    • We have to check with all customer throughout the forum if they still have their issues unresolved, and if so to provide them with a solution.
  • What is included in your community support?

    • we strive to deliver the best experience to our users. We plan to have a better respond time, so in this manner we would need a person who spend time on a daily basis in the forum. In case there is a fix required, or support within an existing user project - we are happy to help out!
    • JS-SDK & Node & Compiler regular updates will also be required in order to be with the most up to date tweaks.

Kind regards,
Hris

Hi Chris,

thanks for answering, but more I read I can not find out what is the the total time in hours to
fix the bug and update the AEProject with the new release?
Please give us time estimate for that without the Coffee-Shop Aepp update. Please tell us pro team member the required time in hours by updating your proposal. Sorry but I can not help you with the licence.

@All Dear All, does somebody runs Aeprojekt on Windows and needs an Aeprojekt update? Please give us a feedback!

Software Updates are often required to keep a system running and should be with the new maintenance requirement provided at least for one year. I think that it is the developer responsibility to keep his software running (bug fixing and new releases) and to answer the users.

Best
Lydia

1 Like

This is not about running aeternity on Windows, but aeproject on Windows. I don’t think you will get much input though. From my perspective there must be a clear understanding of which developer demographic is being approached by aeproject. E.g. Windows might not be widely used by developers in the US, but certainly is used heavily in Asia.

This is unrealistic for tools like aeproject. Keeping up with changes of the supported OSs, and integrated tools (nodejs, SDKs, docker, etc) is non-trivial and a lot of work. A one year maintenance window works for large commercial software projects, but not for a OSS project like aeproject. The maintenance would be easily more work than the actual work proposed here.

Generally I don’t see a vision where aeproject is meant to go and which problems it shall solve. Note, this is not meant as negative feedback towards @hristiyanAE.chain specifically. If aeproject is meant to be (or become) the de-facto development toolkit for AE, it should receive much more resources, also more marketing, translations etc. If it is not meant to be that toolkit, then it should be deprecated since its outdated and would be in the future. Then the question is, what should developers use to get started?

5 Likes

@botanical.chain Thank you very much for correcting my typing error and your valuable post.
I think we need to keep a running system and have a vision how to make the things better. Therefore the maintenance time should be included in the time estimate for any grant application and not only for commercial ones. Otherwise we run in bug fixing problems and deprecated aepps.

1 Like

Oh then I might have misunderstood you. So you are asking to get an updated proposal budget which includes 1 year maintenance effort? That would make sense, but I would also advise to reconsider the vision of aeproject.

2 Likes

Good day everyone,

Thank you very much for your considerations and concerns on Aeproject. Indeed the proposal how it is now is pretty much nothing special than maintenance and support of the Node, Compiler and the SDK which as @botanicalcarebot.chain could easily grow over time.

I could understand your predicaments into not seeing any vision in the current state of the proposal, so I would introduce you with a little backlog of what we initially had as idea.

The Aeproject was the de-facto development toolkit for developers for Aeternity blockchain until the end of the last year when there were a lot of organisational changes, which led to more resources oriented to the end users aepplication, rather than the developers, so in that order Aeproject did not receive resources for what we had applied for, hence the proposal above.

I am really happy to see now that we could talk more about the vision we had previously in mind, so it can reach out the community and share your thoughts over it.

We came up with several major updates to do for a period of 6 months which will include:

  • provide the best user experience to our users the team decided that we will spent significant portion of the time on core improvements, community & protocol support. Aeproject already has a lot of functionalities used by almost all users in aeternity ecosystem. Some of these updates include adopting changes from SDK’s team, nodes, and compiler. We will track the forum and GitHub for issues and feature requests from our users. Updates or work done will be regularly announced in the forum, so we provide transparency of what we did, and what we’ve been through :slightly_smiling_face:

  • There will be guides and examples for all major core functionality of aeproject not only as learning material but to ensure that aeproject works with current and future versions of the protocol. This includes updates in the Sophia Smart Contract Language, deploy scripts, updates within the compiler or new upcoming node version.

  • DAO Shape - can be really helpful for the organizations and teams building applications on the blockchain

  • We will provide a descriptional and more presentative webpage for aeproject. In that way, the product can be easily promoted over different channels. The webpage will include links to documentation, more examples, and tutorials, community links, etc. Contribution page will also be added to the website, providing a way for the community to share and give ideas for the project. All interesting materials regarding AEproject can be posted there.

These are just a portion of the ideas we plan to develop when we have a green light. Please let me know if you want me to present the whole grant application so we could trigger the grant application process from the very beginning.

Hris

3 Likes

Thank you @hristiyanAE.chain and those who shared their opinions here. If anyone else still would like to participant in this discussion, you are more than welcome. And please note that in one week, the decision would be made to support or reject this proposal.
Thank you all!

before working on things like DAO shape etc. I would like to see different shapes for 1 specific use case implemented in different frameworks (react, vue, angular, …) which includes wallet connection by e.g. providing AEX-2 support

we should keep things simple and focus on whats needed to get people started using their framework of choice. of course those shapes and aeproject itself should always be updated if necessary (new node or compiler version, new major release of a certain framework)

we should have a closer look at the ethereum community and what the truffle team provides and develops. we have a solid basis but we should learn from others and provide the best and easiest way possible for new developers to jump in. therefore the shapes with wallet support targeting different frameworks are key IMO.

I wouldn’t waste much time regarding windows rather wait for new people jumping in and complaining about it. as far as I know when using docker for windows it used to work. there were problems when using docker toolbox which can somehow be interpreted as deprecated anyway

2 Likes

In general I think it would be better, considering limited dev resources, to not focus much on “shapes” at all.

Aeproject at its core idea can be way better as contract development tool, focus should be there. For what is “shapes” community projects are fine I guess. E.g. the vue boilerplate GitHub - kenodressel/aepp-boilerplate: A vue.js boilerplate to build aepps in the aeternity eco system. or maybe other community members that have integrated SDK/Wallet in other frameworks can publish theirs.

2 Likes

it would definitely make much more sense to provide this in different frameworks, keeping it up to date and include AEX-2 than making some kind of special shape for DAOs which probably gets deprecated again after 2 months. not everyone is familiar with vue and for people not knowing about the aepp-boilerplate you mentioned they probably wouldn’t find it.

what specific points do you think need to be improved / are missing in aeproject? I am not actively using it and in the past it used to work good and as expected. ok state channel support is missing. but that’s a huge topic anyway and probably requires much work

edit:

  • do we have support for includes ? that should be supported e.g.!
3 Likes
  • frequent updates to latest sdk/node/compiler otherwise devs test with older versions than “production”
  • upgrade support, meaning help upgrading your contract/sdk integratrion for an upcomming sdk/node/compiler
  • use default sdk in tests instead of wrapped one
  • help setup local enviroment better, with more explaination/configuration, also better defaults
  • some more that have been discussed with the aeproject team ~6months ago in detail

@hristiyanAE.chain Your Application in this form is not soundable. Could you please specify and give us a new estimate reflecting the above posts. Please note that one year maintenance is required! Thanks!

Hey @lydia, all,

Thank all of your for you involvement in the discussion here! Indeed what we had above is not quite soundable as you suggested. This was only a quick look in to what we have had in our proposal roughly 6 months ago. Anyways I am happy to see the activity we have on this thread. Therefore I will provide you with our concrete proposal once we have received all you suggestions as we would like to include them into it, before providing estimates and proceeding further.

@marco.chain,
thanks for your suggestions!

  • In regards to the different shapes - This has already been implemented. We have boilerplate ToDo aepp for the three most used frameworks - namely React, Angular & Vue, where we have integrated ToDo smart contract over aeternity which connect to your AE account via identity provider. You might want to look over the documentation.
  • we already have implemented a support for the include a while ago. The aeproject compile command allows you to include other .aes files to your contract by using the reserved word include and specifying the path to the file. You can add contracts, as well as namespaces. More information on how this could be achieved could be found here.
  • Could you elaborate more on the AEX-2 support. As far as I can see in the forum this has been marked as withdrawn due to the adversity to agree on the standard as per @noandrea in this thread

@philipp.chain
Hey Piwo,
Most of the bullets you suggested are envisaged to be in the upcoming proposal, yet some might have slight discrepancies (aeproject used as primary deployment tool in the tests).

  • Could you elaborate in more details this point so we can further look into details and estimate the work eventually:
    • help setup local enviroment better, with more explaination/configuration, also better defaults*

@lydia
I just would like to clarify better with you on how do you see this 1 year maintenance will going on - Is it going to be just a basic support, like update to the latest version of the JS-SDK, Node & Compiler, or rather is going to be more like community support, potential bug fixes on top of the updates to the latest version of the SDK, Node and the Compiler?
There is difference in the estimated work depending on the commitment we are on.

I am looking forward to hearing from you soon, so we can prepare the new proposal accordingly!
Thank you once again!

Hris