NEM Framework - Community Proposal

Sounds like a great initiative but there are lots of questions to be asked and answered. You fellas are asking for a lot of money :slight_smile:

What does the long term plan look like ? Say this frame work is produced - who will maintain it, how will that maintenance be funded and for how long ?

How much coordination has happened with tech bureau ? I feel like you’re selling a product built for something you know little about. Do you guys have inside information on catapult ?
It sounds like there could also be an overlap with catapult actually. I say that without knowing much about catapult, but if catapult introduces a third tier that is something along the lines of API servers then that strikes me as something that is potentially at least partially overlapping with this initiative. Especially if there’s talk about proxy servers here. It sounds like part of what you’re proposing would end up being a 4th layer (depicted APP SERVER) which seems incredibly inefficient. You’d have External Service -> App Server -> Api Server -> Blockchain-Core-Nodes.

What exaclty is DSL supposed to be and why would we need it. Do you mean something like solidity for ethereum ? Or more in the sense of R for statistics ? In either case, what’s the rational ?

What’s this connection pool thing about ?

With all due respect, are you aware that you’re asking for 300.000 USD for a PoC, a website and the draft of a reference ? In general the milestones strike me as a little unbalanced.

Why 2 security audits ?

Why does the framework need it’s own marketing. Shouldn’t marketing efforts be concentrated on nem as a whole ? Would you like to sell access to this framework ? I’m a little unclear about this.

Imho there can be no vote until the tech reference has been released to the community or until the core devs have confirmed that it’s sane.

Props for revealing real names to the community. Shows you mean it :slight_smile:

2 Likes

With all respect to Albert and Atraura Organization, I am totally and completely against funding any third party organization using NEM funds. NEM funds should only get spent to expand the NEM dev team internally “NOT EXTERNALLY”. Any third party organization can create their own crowd funding away from NEM dev funds. Moreover, the requested 15 Million XEM seems too high compared to the proposed solution.

2 Likes

I presume the funding will be allocated from the Community fund allocated to third parties: https://docs.google.com/document/d/1v12DKjHLShbacq4nGyQBm183ADoVgSEQNqbwUYWQBTM/edit

At the moment, I think there are too many questions unanswered, and not enough information provided to make an informed decision. The plans are very high level with not much detail and what the scope will be. The budget percentages appear to be arbitrary at first glance rather than something a lot of thought has gone into.

1 Like

Hello !

I really like the initiative of doing such project, and doing it openly/publicly. Many developers have joined the NEM ecosystem and I believe publishing about the development of such SDK / Frameworks can be a very big benefit to companies with developers aspiring to use NEM.

I would love to see a peer review process implemented at the core of this Idea. I believe if we want this project to really help in the NEM blockchain adoption, a peer review from the NEM community is mandatory. Maybe I should wait until we can read the Technical Reference because that’s where peer review will be needed too. And also, as you state the project will be available at Github and peer review can be done there, I’m referring here to more Specific Details about what would be implemented in the first place.

Another topic I would like addressed is the Language you plan to use for this Framework? I believe that publishing a single Javascript framework would not fit the bill not only because QM started a nem SDK already but because there should be more possible ways to use the Framework than just Javascript. I believe this Project would need to include more than just one Port of a Framework. It should probably also be available in other languages such as Java, maybe a C++ wrapper, etc. The idea of the Framework should not limit the entry points of developers into the NEM space if you will.

In that sense I still wish to show support to this initiative because I believe it can be more appealing to Developers when they have out-of-the-box full support of the NEM blockchain in SDKs or Frameworks.

5 Likes

What are the advantages of this initiative vs what we currently have? Thank you in advance!

Hi @gimre

M2. What exactly do you mean by Code of Conduct

The Code of Conduct is an iniciative to allow any community member to cooperate with the project. This is very popular in other communities/projects and is used to establish good practices and clear guidelines to participate.

This ensures a healthy project and shared responsibility throughout the community.

M3. Why do you need DSL and how exactly would it look like?

NEM Blockchain comes with a lot of concepts that can be hard to grasp by newcomers, a Domain-Specific Language describes the concepts though a traditional object oriented paradigm hidding the underlying complexity and exposing an abstraction layer.

DSL is type embedding, we define domain-specific types and implement them in terms of the types and operations for which they are intended.

Our goal is to lower the entry barrier for new developers as much as possible and maintain standardized codebases.

M4. What is NEM Health Report System and how it is supposed to work, what it is suuposed to do, where it would run?

What NEM Health Report System does is catch the success/error http codes, the network latency and report them to the System to know the actual network status.

Enabling the NEM Health Report is completely optional and all data recorded will always be published openly for anyone to access freely.

M6. What exactly is TestRPC

The TestRPC works as a stub for NEM Blockchain, it allows developers to test their products without the need of accessing the testnet. It is not intended to replace the testnet but to facilitate testing procedures and, ultimately, projects must ensure their correctnes though the testnet.

We are about to send you a Technical Reference where all above is explained in detail.

Thanks

2 Likes

Please tell us the development schedule.
How long time are you going to do?

Hi @patmast3r,

Thanks for your kind considerations, we will always try to release as much information as possible.

Please allow me to respond inline:

Our desire is to build a platform that will allow any developer to easily get up to speed when building NEM/Mijin based applications without compromising any critical aspects.

NEM is aiming to become the go-to platform for enterprise level Blockchain implantation. However at the moment any company working on it such as Atraura, Dragonfly, Tech Bureau or any other needs to build the necessary tools to work effectively and it is indeed a very costly endeavor.

Thanks to having a common development framework we will all be able to work closer, continue extending the common tools and thus ensuring long term sustainability. A key aspect for this is the Proxy component, which will allow for new business models and therefore motivate companies to keep evolving it in the future.

As you know Catapult is still going under heavy development and therefore there is little to be known which won’t be changed in the upcoming months. It is clear to us that we will need to work closely with the devs in order to accomodate the new features that Catapult will offer, however there is a lot that will not be affected by it and that is where we will begin. Of course we will still consensuate with the core developers so that no effort is done in vane.

The Framework is a higher abstraction layer to NEM Core and therefore, if any feature did overlap (with Catapult or any future release), we could simply use core’s implementation and any application built using the Framework would stay unaffected.

Regarding NEM Proxy, the name is simply to make it understandable, it’s goal is completely different from the API’s. The NEM Proxy component aims to enable tricky business logics that cannot be performed at the moment.

A couple examples would be:

  • Delayed transactions
    NEM Proxy would allow transactions to be signed on the client (which keeps the private key) and then securely held (untransmitted) on the server’s proxy layer until a condition is met. This would be a huge breakthrough in terms of the possible business models

  • Account Monitoring.
    It allows backend applications to connect to the NEM API only when an event actually happened, providing a more healthy network because it will not require all applications to be connected via Web socket and therefore overloading the network.

As Aleix wrote above, the DSL is not a new language like solidity but simply an object oriented layer that aims to describe domain models through a typed language such as Typescript.

This would be a possible implementation example:

let account = Account.generateWithPrivateKey("privateKey");
let transaction = new Transaction(20, "recipientAddress");
let signedTransaction = account.signTransaction(transaction);

The connection pool is a very important feature. The nem-library will know a set of NEM nodes (and their properties) to automatically provide the user with better nem-connectivity. In case that a NEM Node is down, the library will re-try the call using another NEM Node and therefore will distribute load throughout the network ensuring maintained connectivity, higher speeds and higher availability.

As you can see, most of the milestone rewards are set towards the end of the development effort. However we need to build the necessary structure and maintain it throughout the project, pay for salaries, taxes, legal council and more and, although it may strike as arbitrary, due to NEM’s unknown volatility we need to avoid the project getting jeopardized. (We started working on this proposal 2 months ago)

Due to the length of the project we would like to split it in two phases so that any developer can use the framework after the end of the first phase and we can get their feedback. The security audits will ensure the security levels and indicate that we are moving towards the right direction and it is because of this that it should be performed right after the Library. (The library is the one dealing with private keys), and at the end of the project.

[quote=“patmast3r, post:6, topic:5174”]
Why does the framework need it’s own marketing. Shouldn’t marketing efforts be concentrated on nem as a whole ?[/quote]

NEM is a very powerful engine but in order for the enterprises to start using it we need more applications, tools and other companies using it. We intend to build a very professional solution that will allow for fast prototyping and hopefully lead to many companies joining the ecosystem.

In our opinion this will definitely boost NEM’s visibility as a whole.

The Framework will be released under Apache 2.0 licence.

https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)

Absolutely, we intend to be fully transparent and share everything however we need to discuss the approach with the developers first. Thanks for your understanding.

Nothing to hide here, we want to keep a clear and open communication channel throughout the project. We will be doing video AMA sessions plus regular deliveries and reports. We sincerely look forward to hearing your feedback in order to improve the product.

Thank you!

Albert

3 Likes

We are following agile methodologies ad we will always prioritize security and features over time but you can find an estimation here:

We will be able to do better estimations as we move forward.

1 Like

Thank you very much for your detailed response. It sounds like you really thought this through.
I do think that coordination with the core devs will be very crucial though. Some of the feature you mentioned would imho be better placed on-chain (likey delayed transactions, other chains actually already have that) and I was kinda hoping we’d get to see them with catapult :slight_smile:

Good luck with this !

3 Likes

Indeed, we would like to see that too.

However, even if we do, they would most likely be used for different situations and therefore bring different benefits.

Thanks for your support

1 Like

Hi, there are some points from btt forum also

  1. The possible benefits to NEM. Could you plese explain simple users what benefits nem could get, for example, it could increase time of development in 2-3 times and so on. Would like to see benefits from all sides: dev and business.

  2. Could you pelase decomposite budget for each milestone for clear understanding?

  3. Is it possible to send payment once Milestone is reached?

Thanks in advance.

Answering inline

We plan to deliver early and often, a peer review/support with NEM Community will be the best cooperation that we could have, for sure. A goal with this approach is be aware of the NEM needs and provide the higher value as possible, and it has to be accomplished with good practices, great values and with the best cooperation of the all community.

The first implementation will be done with TypeScript language. TypeScript provides a good support for ECMA6 libraries, and we want to take advantage of the existence libraries to boost the development starting point without re-do all the crypto stuff. So, writing the first implementation with TypeScript, we provide support for TypeScript and ECMAScript6, and it allow us to write the Visual Components for Angular4/Ionic2 and React/ReactNative.

We are not planning to support another language until the project reaches a release candidate state. We are aware that we cannot maintain two code bases at same time. So, when the project reaches a release candidate state, we will publish a list of languages that we want/suggest to port the framework where the community will be able to vote which prefer to be ported.

Thanks for your support!

3 Likes

IMO, an advanced development framework with a low entry barrier would be extremely valuable to the NEM platform. On the surface this sounds like a project I would support but I have some concerns on the timing.

There is little information available on “catapult” and how exactly it’s going to effect the NEM platform other than the general assumption that everything is going to be better, faster, stronger. I would think that this project would create the most value after the release and adoption of the new catapult architecture. Since you are proposing the implementation of this framework before the release of catapult, how to you plan to address the migration to the new architecture?

1 Like

I agree with the above.

Also, are there ‘Development Frameworks’ already done for other coins/platforms that you would like to model?

For example, does BTC, ETH, Ripple, etc… have Development Frameworks out in public similar to what you want to accomplish?

The amount to be decided at once is too large
I think that it is better to do it separately for Milestone.

5 Likes

We are aware, and we do really love the features that Catapult will bring to us. We cannot predict the impact of Catapult in the whole NEM ecosystem, but we know that it will happen and we can design the framework with that in mind.

The NEM Framework aims to provide a higher abstraction for NEM native features, and a solution for non-existence features too. We would like to replace a non-native implementation done in NEM Framework when Catapult provides it, or even add the features provided by Catapult that are not considered in the development due the leak of information.

So, the NEM Framework architecture is aligned with NEM Core architecture, and it will be updated in order to be aligned with Catapult architecture once it is released.

Thanks to the first approach, and the higher level of abstraction, we the applications using NEM Framework will have a better codebase maintenance, and they could migrate faster to Catapult.

2 Likes

hey guys,

as i am no developer i dont get in detail what you are doing but based on the feedback from others it seems like its something which will help to make it even easier to develop on NEM.

as i said, i dont have technical question but i’m wondering about the funding because you are asking for a large sum of XEM

  1. is it possible to tell how many hours you have to work for each milestone?
  2. how many people will work on the project?
  3. are you working fulltime on this?

a fulltime dev gets payed 100-150k$/year, so with 3+ million $ i can hire a dev for 20-30 years. as a “non-dev” i dont really see how much work it is to do what you are planning so it would be nice to get some “hour-numbers”

thank you

I think it is difficult simply to compare.
I only know the price of Japanese programmers. And I know that it is lower than the world average.
By the way, Japanese programmers work overtime for 6 hours every day, even if they make a full commitment per person is about 50,000 dollars a year.

Hi, thanks for forwarding this here.

At the moment NEM is a very powerful engine for Blockchain development. Comparing NEM and Ethereum development times may be easily 5/10 since already existing code needs to be fully rewritten and there are very few tools to do it properly. This is something our team has experienced since we have worked extensively with Ethereum and Hyperledger for multiple projects.

However, now that we are working exclusively on NEM we realized that building on top of it could be a lot easier if code was more modular, reusable and there was more developer documentation, skeletons and samples. All this would make working on top of the platform very easy (Hard to say but 2/10?)

As explained above, the budgets are basically set to get almost 50% in the final deliveries while maintaining a continuos flow so that we can pay for infraestructure. We will try to bring more detail to the milestones although we expect to discuss this with the core developers during the upcoming days as stated on the guidelines.

Precisely, that is our idea and is as well stated on the Community Fund guidelines.

Thanks!

1 Like