# 【升级】dtns.network德塔世界:新发布了fastdown文件下载器工具,可构建FCDN
# 【升级】dtns.connector新升级更新了fastdown文件下载器功能
dtns.network是一款主要由JavaScript编写的智体世界引擎(基于WebRTC通讯技术的分布式开源软件组件),可以在浏览器和node.js、deno、electron上运行,它是一个跨平台的软件,支持多个操作系统使用!
# dtns.network于2024-4-28正式发布了新款的多进程、多文件高速下载器fastdown工具
1、支持dtns协议下载远程文件(一般来说保存于dtns.network智体世界的ib3.hub智体节点上)
2、支持通过dtns.connector德塔世界连接器内置的指令fd、fastdown指令,快速打开iframe多进程文件下载器fastdown工具
3、支持显示文件名、文件大小、下载进度、下载速率显示,方便地查看正在下载的进程进度
4、单节点、单进程支持可达10MB/s级别的网络文件下载(远超普通的云服务器提供的下载源的速度速度)
5、多进程、多节点下载,可支持超1000Mbit/s的宽带下载,甚至是达万M级别的下载速率(超过5G的下载速率,达到6G以上)。
# 以下是体验fastdown下载器工具的官方教程
# 第一步:打开dtns.connector,找到一个xverse轻应用(也是基于ib3.hub智体节点的分布式网络文件存储技术)
# 第二步:点击右上角的...,打开xverse轻应用的头榜内容编辑器,复制dtns-url
复制上图中的dtns-url,以便在下载器fastdown工具中使用。
# 第三步:通过智体IB,输入fd(或fastdown)跳转fastdown下载器工具,输入刚才复制的dtns协议的URL,点击download下载
跳转到pop-fastdown下载器工具如下图所示:
我们看到,大概800多KB的文件,不超过1秒即完成下载。
# 第四步:复制更多的文件dtns-url过来,测试下载速率
上图中的文件,有docx、mp4、md、xverse.json文件,均支持使用fastdown下载(通过dtns://协议下载)
# 第五步:一些高速率的文件下载截图如下
从上图可以看到,下载链接为dtns://web3:jobs3d/file?filename=obj_filefileBWPRp7AB的网络文件,有获得超过10MB/s的下载速率。
# 为何获得如此优秀的下载速度,我们查看一下fastdown下载器的源码
let down_url = document.getElementById('down_url').value
console.log('down_url:',down_url)
if(!down_url || down_url.trim().length==0){
return alert('URL不能为空')
}
down_url = down_url.trim()
// let ret = await g_dtnsManager.run(down_url)
// console.log('g_dtnsManager-run-ret:',ret)
// if(ret && ret.fileInfo && ret.data)
// {
// console.log('download success:',ret.fileInfo.filename,ret.data.length)
// let client = await g_dtnsManager.connect(down_url)
// client.downloadFileByBinary(ret.fileInfo.filename,ret.data)
// }
let client = await g_dtnsManager.connect(down_url)
while(!client.pingpong_flag) await client.sleep(300)
let beginTime = Date.now()
g_downManager.download(down_url,{user_id:localStorage.user_id,s_id:localStorage.s_id,file_kind:'file'},
async function(data){
console.log('g_downManager.download-file-data:',data,data.data,data.data.buffer)
if(data && data.data){
console.log('download----data-len:'+data.data.length)
let statusEle = document.getElementById('status')
let tips = data.fileInfo.filename+'('+
showSize( data.fileInfo.size )+')'
setTimeout(()=>statusEle.innerHTML =tips+ '[下载完成] 100% 用时:'+ parseInt((Date.now()-beginTime)/1000)+'秒' ,1500)
// This.tips = '100%'
console.log('download success:',data.fileInfo.filename,data.data.length)
client.downloadFileByBinary(data.fileInfo.filename,data.data)
}
})
我们看到最开始使用的是 let ret = await g_dtnsManager.run(down_url)来实现fastdown下载器,后面使用了g_downManager.download来实现下载器工具,g_downManager是DownloadManager类全局实例,是对基于WebRTC网络通讯工具dtns.rpc-client的封装。实现了丰富的下载器功能(例如下载速率统计、下载进度统计、单文件单实例下载功能等)。 至于为何基于WebRTC的实时通讯技术,为何能实现如此高效的下载速率,原因就在于p2p打洞技术——无须使用相对中心化的CDN服务,使用分布式的p2p边缘存储节点,即可实现高效的文件下载。当前很多【升级版】的CDN(例如PCDN等)均是通过类似的技术实现了CDN技术的升级。
可以把dtns协议指向的文件,比喻成边缘存储的分布式文件系统,通过DTNSManager(类似DNS域名系统),即可对智体世界的ib3.hub智体节点上保存的网络文件,实现高效的访问和下载,这即是fastdown下载器工具快的本质!
# 未来的CDN技术:PCDN 或 FCDN?
PCDN是利用家庭或闲置的带宽资源,实现了边缘的CDN网络节点的文件访问。
那FCDN又是什么呢?
FCDN是基于POP-fastdown工具,实现的对dtns.network智体世界的ib3.hub智体节点上存储的有产权、版权、或开源开放的数据文件的下载。FCDN即fast-CDN,超越PCDN和传统的CDN。
当然,目前fastdown下载器工具初次发布,离FCDN盛行于世还有一段距离。但作为领先的科技,FCDN未来一定会占据一席之地的!
注:dtns.network德塔世界(开源的智体世界引擎)是在github和gitee上开源的项目!
# 开源地址:
github地址:https://github.com/dtnsman/dtns (opens new window)
Gitee地址:https://github.com/dtnsman/dtns (opens new window)
官方文档:https://dtns.network.yunapi.org (opens new window)
加入QQ群:279931001
加入微信群: