What is a Namespace
A namespace is a map of the module's name to it's IP address that its served on. The purpose of this is for navigation over modules across the internet. Namespaces can be local to you, between you and a few buds, or global across the network.
Local Namespaceβ
A local namespace is a namespace that solely exissts on your computer. These consist of your modules that are running locally.
c.namespace('local')
Remote Namespaceβ
A remote namespace is any namespace that is not local. This refers to any modules that exist outside of your module.
c.namespace('remote')
Adding a Remote Namespaceβ
To add a remote namespace, you will need to know the address of a module from another local namepsace. Every module by default has access to the namespace. To add a remote namespace, you need to add a peer's address.
c.add_peer('123.456.789:8888')
# this merges the namespace on the remote peer to yours
Adding a Single Moduleβ
To add a single module instead of an entire namespace, just add the following
# this will add a single module to the remote namespace, not the entire remote namespace that that module consists of
c.add_module('123.456.789:8888')
Security Considerations
You need to be careful for who you add or who can add you. To disable people from adding you, blacklist any functions that give away such information, as seen in step 2 (deploy module).
Global Namespaceβ
A global namespace combines both of your local and remote namespaces