DeWEB:链上网站与 tape:// 地址DeWEB: on-chain websites and tape:// addresses
网站字节存在链上、地址形如 tape://4246.0.tape,打开时逐字节校验哈希;含规范 v0.2 的解析流程、上传方式与费用。site bytes live on chain under addresses like tape://4246.0.tape, verified byte-by-byte on open; includes the spec v0.2 resolution flow, upload paths and costs.
DeWEB 是 TapeOut 对「去中心化网站 + 消息」这一层的称呼。网站文件写在链上合约里,地址形如 tape://4246.0.tape/,打开时由客户端直接从链上读取并逐字节核对哈希,不依赖网站主人的服务器。
网站如何长在链上
一枚电路开通容器后,容器就是它的链上账户。网站文件从网站仓库合约(SiteRegistry)读出,按 24,000 字节一块存储,单个文件最大 8.4 MB。
打开一个地址的解析流程
规范 v0.2 规定客户端按固定顺序处理,任何一步对不上就拒绝显示:
- 1找到处理器读工厂合约,按链号拿到对应处理器合约地址。
- 2算出容器地址由「链 + 处理器合约 + #ID」唯一算出,不是任何人自报的。
- 3检查状态电路是否存在、容器是否已开通、是否被客户端屏蔽。
- 4检查开通状态遵守规范的客户端只显示已开通的名字。
- 5读文件从网站仓库合约按块读出文件清单与内容。
- 6逐字节校验长度必须等于声明大小,SHA-256 必须等于链上记录。
- 7隔离显示每个网站独立运行,不能读写用户数据或影响其他网站。
两条安全底线:每次读取要至少 2 家不同运营方的节点给出完全相同结果,任何不一致就拒绝(不取多数);打开网站时所有文件钉在链上同一区块高度读取。
打开方式
| 在哪里 | 怎么输入 | 需要什么 |
|---|---|---|
| 任何浏览器 | https://4246-0.tapekit.org/(官方网关) | 什么都不用装 |
| 浏览器地址栏快捷搜索 | 配置一次后输入 tape 4246.0.tape | 搜索引擎设置 |
| 浏览器扩展 | tape + 空格 + 4246.0.tape | 安装扩展 |
| 网页内链接 | web+tape://4246.0.tape/ | 在网关首页允许一次 |
| 桌面应用(计划中) | tape://4246.0.tape/ | 应用向系统注册协议 |
上传与开通
准备网站的要求:只能是纯静态文件、一律用相对路径、文件名只用英文、每个文件先算好 SHA-256。想拿到「100% 链上」标记,HTML 与 CSS 里不能引用任何链外地址——字体、脚本、统计代码都要自托管。
| 方式 | 说明 |
|---|---|
| HashPort 控制台 | 托管服务,选电路、拖入文件夹、确认两次钱包签名,其余几十笔上传交易由一个临时钱包代签 |
| 直接调用合约 | putFile 写入第一块(≤24,000 字节)、appendChunk 逐块追加、setFallback 设置单页应用回退页、removeFile 删除 |
| 社区容器工厂 | 一键「选号 → 铸造 → 流片 → 开通容器」,用 1 个 NAND 流片,成本最低 |
上传成本只有链上 gas,约每 MB 0.01–0.03 BNB。
多链部署
X Layer 主网已上线处理器工厂、电路容器、网站仓库与 TapeSend,Base 仍在计划中。网站仓库与名字绑定合约在两条链上的地址不同,规范客户端已按链内置了对应地址;开通费用 X Layer 为 0.08 OKB。
BEM 挖矿只在 BNB Chain 上:X Layer 上可以建处理器、开容器、发消息、放网站,但不产出 BEM。
链上 Linux 演示
2026-09-07 官方发布「在 L1 主网上跑 Linux」演示:主线 Linux 6.5.12(rv32ima、无 MMU、busybox 用户空间),16 MB 内存存在 16,384 个页合约里,每次 tick() 最多执行 1,024 条指令,开机到 root 登录约 4,180 万条指令。演示中机器的所有者就是一个电路容器。这是技术演示,不是可用系统。
社区链上应用
截至 2026-09-25 扫链,共 51 个写过文件的链上网站:社区真实应用 39 个(BNB Chain 36、X Layer 3),官方站点 2 个,其余为测试与模板页。
| 应用 | 类型 |
|---|---|
| tapeout.space | 把所有链上网站画成一张图,带社区网关与一键上链工具 |
| TapeWeb | 全网链上站点查看器 |
| 容器工厂 | 一键开容器,选号 → 铸造 → 流片 → 开通 |
| TapeChat / DeQQ / TAPQQ | 基于 TapeSend 的聊天客户端 |
| Perpetua / NAND Driver / C3S | 生命游戏、21 个门的自动驾驶小车、反射电路研究 |
| TAPE STRIKE / Neon Reliquary | 链上游戏,前者 600 KB 全部写进 BNB Chain |
第三方项目不代表官方背书,链接与状态请以访问时为准。
与普通网站的区别
| 维度 | 普通网站 | DeWEB |
|---|---|---|
| 内容存放 | 服务器与 CDN | 链上合约,按块存储 |
| 能否被替换 | 站长随时可换 | 版本与哈希公开可核对 |
| 下线风险 | 域名、服务器到期即失效 | 链上记录不因单点停机消失 |
| 修改成本 | 几乎为零 | 每次改动都要写链 |
How a site lives on-chain
Three steps take a site on-chain:
- Bind: use SiteRegistry to bind the site to the container identity.
- Publish: release the files through HashPort.
- Visit: open it through
tape://.
How a tape:// address gets opened
The browser derives the container address from the name, reads the files back from the chain chunk by chunk, and shows nothing until every byte checks out.
- Find the processor: read the factory contract to get the processor contract address.
- Derive the container address: it is computed from "chain + processor contract + #ID", not self-reported, so nobody can impersonate another site.
- Check the state: does the circuit exist? Is the container open? Is it blocked by this client?
- Activation check: a spec-compliant client only shows activated names.
- Read the files: read from the SiteRegistry repository contract, stored in 24,000-byte chunks, each file up to 8.4 MB.
- Verify byte by byte: the length must match the declared size and the SHA-256 must match the on-chain record, or it is not shown.
- Render isolated: each site runs on its own and can harm neither you nor other sites.
Two baselines: every read needs at least two nodes from different operators to return exactly the same result, and any mismatch is rejected (no majority vote); all files are read as of the same block, so a site is never half old and half new.
The tape:// spec v0.2
The tape:// spec v0.2 (2026-09-13, draft) governs exactly four things: URL format, address resolution, verification, site isolation. It does not cover how files are uploaded, how a normal browser visits them, or how a wallet is built. Three parts matter most to developers:
- Site isolation (§7): an on-chain site may be malicious, so the shell must keep it from harming you, other sites, or the shell itself — one origin per site, no privileged execution, restricted network requests and popups.
- The "100% on-chain" mark (§8): only sites that pass both static scans and runtime checks show "100% on-chain".
- The immutability promise (§15.1): the spec separates "what never changes" from "what may change" and sets version-number rules.
What to open it with
| Where | How to type | What you need |
|---|---|---|
| Any browser | https://4246-0.tapekit.org/ (official gateway) | nothing to install |
| Chrome address-bar shortcut | tape+ Tab then 4246.0.tape | set up once in search settings |
| Chrome extension | tape+ space then 4246.0.tape | install the extension |
| Web link | web+tape://4246.0.tape/ | allow once on the gateway home |
| Desktop app (planned) | tape://4246.0.tape/ | the app registers the protocol |
The community builds openers too: the Wafer desktop browser (Mac beta) and a browser extension with a configurable gateway. Both are third-party — vet the source before installing.
How to put a site up
A. HashPort console (hosted): pick a circuit, drag in the site folder, sign; it handles hashing and chunking. You confirm 2 wallet signatures and a temporary wallet signs the rest of the uploads; the cost is on-chain gas only, about 0.01‒0.03 BNB per MB, the service fee shows 0 BNB, and binding your own domain is optional and free.
B. Call the contracts yourself: putFile writes the first chunk (≤24,000 bytes), appendChunk appends, setFallback sets the single-page-app fallback, and removeFile deletes.
Even with no circuit skills you can open a container in a minute: the community "container factory" runs pick a name, mint, tape out, open the container, using one NAND for the lowest cost.
Before publishing: static files only, always relative paths, prefer English file names, compute each file SHA-256 first; to earn the "100% on-chain" mark, the HTML/CSS must not reference any off-chain address (self-host fonts, scripts and analytics).
Does activation cost anything
Accounts conflict: the spec says 0.08 BNB per 30 days (pay 1‒120 months up front, non-refundable); HashPort shows a 0 BNB service fee with free domain binding; the on-chain monthlyFee() currently reads 0. As of writing it is 0 on-chain while the docs lag behind, so trust the amount your wallet shows.
Activation is only an official-client convention to show activated sites; it does not lock the data away — anyone can read the chain.
A hash is a file fingerprint: it proves you fetched the published copy, not that the content is true.
What it changes
- Blocking cost: from blocking one IP to blocking a whole chain.
- Ownership: a site finally belongs to whoever holds the private key.
- Security: from trusting institutions to byte-by-byte hash checks.
- Asset: sites become tradeable, financeable and cash-flowing.
- Publishing: digital content can be permanent for the first time.
Still early
Storage cost, read speed and UX are all still early — do not treat it as a finished internet.
On-chain Linux: a technical demo
On 2026-09-07 the founder posted a demo he called "the first time Linux ran on an L1 mainnet": every instruction executed by a BNB Chain mainnet transaction, all state stored on-chain. He compared it with Cartesi — Cartesi runs Linux on an off-chain node and the L1 only recomputes a step when there is a dispute.
The official on-chain Linux page shows the demo running mainline Linux 6.5.12 (rv32ima, no MMU, busybox userland):
- 16 MB of memory lives in 16,384 page contracts;
- each
tick()call runs up to 1,024 instructions; - from boot to the root login prompt it ran about 41.8 million instructions;
- the "machine" is owned by a circuit container.
It is not about speed — it is about proving that every step of computation can be put on-chain for anyone to check.
Community DeWEB apps at a glance
See DeWEB Zone for sites already built.