Neo: NEO SDK based on RPC interfaces

Created on 21 Jun 2019  路  13Comments  路  Source: neo-project/neo

As a developer, I would like to have a new module SDK which supports lightweight neo interfaces. This module will be based on the NEO3 RPC interfaces supported by RpcServer and plugins, so users can work with neo network without running as a NEO node.

Tasks / Requirements:

  1. Create RPC client module to work with NEO network
  2. Create Wallet module to manage lightweight wallets and implement transfer and balance query
  3. Create Transaction module to manage Transaction construct
  4. Create SmartContract module to invoke/mockinvoke contract
  5. Create Blockchain viewer to view block chain data

The following is the structure of this SDK module:
image

discussion

Most helpful comment

Most of these features are done here https://github.com/CityOfZion/NeoModules

All 13 comments

Most of these features are done here https://github.com/CityOfZion/NeoModules

Very nice. Perhaps it's something worth merging with core @BrunoFreitasgit

It depends on what you guys think @igormcoelho, I'm happy to help with this. I agree that we, as developers, should be able to create light apps only using core. That's it's not possible with the current wallet design as it is, that's why I created this lib.

If Jeff, @jsolman, have some time to take a look at it would be great, @BrunoFreitasgit. Does it have relationship with the possibilities mentioned on https://github.com/neo-project/neo/issues/623?
Where should it be merged? Can it be used as a plugin or should modify the structure of the current RPC management?

@vncoelho The NeoModules sdk is quite large and have some different features. I think you are only referring to the RPC module right?

Yes, I see that the project sdk has distinct features. My question is about what about be merged and how would be this? Which parts would be refactored or modified?

It depends. If we want the entire features raised by @chenquanyu, there is a bunch of things that need to be modified. There are some external dependencies that need to be removed. Some of the wallet code requires neoscan requests. But if we removed this and use the JSON object implementation instead of Json.NET, it should be feasible.

@chenquanyu and I are modifying the RPC module old implementation to comply with the JSON object implementation. @BrunoFreitasgit really nice job you have done for creating those modules, you have already realized most of the features we are thinking of, such as the transactionManager, the lightweight NEP-6 wallet. What I'm think about is can we work together to create a SDK module in neo.dll for NEO 3.0.

So this SDK would be on a different namespace inside neo-core? Or is it worth it to separate from neo-core to another project?

Another thing it needs to be removed is the use of BouncyCastle. I used this lib for signing transactions (ECDSA) because there wasn't a native implementation for Mono, as I was developing this with Xamarin in mind.

@BrunoFreitasgit we discussed with Erik earlier, the SDK will be on a different namespace inside neo-core.

Is this solved? What are the next steps? Is it going to be added to this repository? A new one?

@lock9 I think this issue or discussion is solved. You can find the PR here #850. Thanks.

Was this page helpful?
0 / 5 - 0 ratings