通过使用NKN客户端,我们可以纯分布式的方式透明地隧穿任何基于TCP的应用程序,并且应用程序本身不需要任何修改。 这样的安全隧道不需要任何一方具有公共IP地址或端口映射,并且根本不需要集中式服务器。 以下是Mozilla WebThings物联网网关的说明。
客户端(用户手机或电脑)和服务器(WebThings物联网网关)端都需要运行nkn-tunnel。在WebThings物联网网关(或同一局域网中的任何设备)上,我们以服务器模式启动nkn-tunnel:
./nkn-tunnel -from nkn -to 127.0.0.1:8080 -s
127.0.0.1:8080 是WebThings物联网网关的网络服务器地址, 是用来生成NKN客户端的私钥种子(类似于密钥)。私钥种子是一个64位数长的16进制字符串。如果用户不填写私钥种子的话,系统会缺省产生并使用一个随机的种子。
nkn-tunnel安全隧道启动以后,会打印出以下的监听地址:
Listening at < server-listening-address >
其中< server-listening-address >是安全隧道的NKN地址。
然后在用户端(用户手机或电脑),我们以客户端模式启动nkn-tunnel:
./nkn-tunnel -from 127.0.0.1:8081 -to
现在,用户可以通过访问http://127.0.0.1:8081访问Webthings物联网网关界面。
将nkn-tunnel嵌入iOS / Android应用程序
nkn-tunnel用Go编写,可以使用Go mobile编译为本地iOS / Android库。
下面是一个简单的iOS应用程序,它使用nkn-tunnel + WebView作为最小的WebThings Gateway移动客户端。
使用NKN客户端作为p2p通信层
nkn-tunnel是与现有应用程序集成的最简单方法,但对小白用户而言可能不是最容易操作的方法,因为它还需要客户端同时运行nkn-tunnel。 如果您能够并且愿意修改服务器端应用程序,则可以将NKN客户端用作p2p通信层,并将NKN客户端集成到应用程序的客户端和服务器端。 NKN客户端当前支持Go,JavaScript,Java。
关于Mozilla WebThings
Web of Things物联网将现实世界的对象连接到万维网。
Web of Things物联网标准的想法是通过在网络上提供物联网URL使其可链接和可发现,并定义标准数据模型和API使其可互操作来创建去中心化的物联网。
Mozilla WebThings是Mozilla Web of Things物联网的开源实现,包括WebThings 物联网网关和WebThings应用开发框架。
有关更多信息,请查看:https://iot.mozilla.org/
关于NKN
NKN是一个完全去中心化,基于网络传输量工作证明,可支持千万级规模节点共识的区块链系统。由NKN所构建的这样一个有经济模型所驱动,社区共建共享的新型点对点网络,为开发者提供了一个开放、便捷、高效和安全的网络连接传输平台。基于NKN开发的各种应用将给终端用户带来各种全新的网络体验。
主页: https://www.nkn.org/zh
邮箱: contact@nkn.org
论坛: https://forum.nkn.org
Telegram: https://t.me/nknorg
Twitter: https://twitter.com/NKN_ORG
Medium: https://medium.com/nknetwork
Discord: https://discord.gg/yVCWmkC