Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugin interface #103

Closed
renne opened this issue Jun 15, 2014 · 5 comments
Closed

Plugin interface #103

renne opened this issue Jun 15, 2014 · 5 comments

Comments

@renne
Copy link

renne commented Jun 15, 2014

A plugin interface allows to extend the functionality of namecoind by other developers with native speed and without an exploding code base. Examples are web-interfaces, DNS resolvers or SIP registrars for VoIP. So I suggest to add a plugin interface to namecoind which plugins can use to access the blockchain and run operations on the blockchain (e.g. name update). To ensure safety all plugins should be able to request information from the blockchain but there should be a rights management for all actions like update, renew, ...

@domob1812
Copy link
Contributor

I think the best way to integrate with namecoind is to use the RPC interface. Do you have concrete examples of things which could be implemented via RPC only with a significant performance overhead (or other problems)? All of the things you mentioned above seem suited to base off the RPC interface. IMHO, the separation into multiple processes and communication over RPC seems like a good choice security-wise.

@renne
Copy link
Author

renne commented Jun 15, 2014

You can use multi-threading and multiple processes in a native application with plugin interfaces, too.
Let's take NMControl as an example:
Port 53 -> Python -> random port -> HTTP -> Namecoind-RPC
Script-languages like Python are slow and HTTP has a lot of overhead. Consider the situation of one or two Namecoinds as DNS resolvers of a company/university campus with 5000 hosts. 5000 hosts will overload a Namecoind/NMControl combo.

Namecoin is an excellent theoretical idea but implementations don't seem to consider the scaling effects in the real world ...

@domob1812
Copy link
Contributor

I understand your concerns. However, I don't see how a plug-in infrastructure would help in the example you cite. The main problem I see with using a namecoind for 5000 clients is that the namecoind itself will be overloaded. It doesn't matter whether it is accessed via RPC or directly from within using plug-ins. At least that is my own impression.

@phelixbtc
Copy link
Contributor

I'm with domob on this one. Plugins should go into NMControl. It already does support plugins.

In the example given I don't understand why namecoind would be overloaded. Communication between namecoind and NMControl is not affected by connections to NMControl.

@phelixbtc
Copy link
Contributor

I suggest for this discussion to be moved to the forum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants