# Proposal. IPFS dynamic website

**URL:** <https://discuss.ipfs.tech/t/proposal-ipfs-dynamic-website/14027>\
**Category:** Help\
**Created:** [April 20, 2022, 9:42am UTC](https://discuss.ipfs.tech/t/proposal-ipfs-dynamic-website/14027 "2022-04-20T09:42:38Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tommy866](https://avatars.discourse-cdn.com/v4/letter/t/90ced4/32.png) [@Tommy866](https://discuss.ipfs.tech/u/Tommy866)\
**Post date:** [April 20, 2022, 9:42am UTC](https://discuss.ipfs.tech/t/proposal-ipfs-dynamic-website/14027/1 "2022-04-20T09:42:39Z")

</div>

Proposal. IPFS dynamic website.

1)) We have 2 computers, caller\_pc and responder\_pc with IPs: caller\_ip and responder\_ip;

2)) The responder\_pc has several files:  
QmRBkKi1PnthqaBaiZnXML6fH6PNqCFdpcBxGYXoUQfp34a  
QmRBkKi1PnthqaBaiZnXML6fH6PNqCFdpcBxGYXoUQfp34b  
QmRBkKi1PnthqaBaiZnXML6fH6PNqCFdpcBxGYXoUQfp34c

3)) The responder\_pc has a small database, say sqlite, with 2 columns:

‘picture\_jhon\_2009.jpg’, QmRBkKi1PnthqaBaiZnXML6fH6PNqCFdpcBxGYXoUQfp34a  
‘video\_of\_mary\_2012.mp4’, QmRBkKi1PnthqaBaiZnXML6fH6PNqCFdpcBxGYXoUQfp34b  
‘pdf\_book\_neverland.pdf’, QmRBkKi1PnthqaBaiZnXML6fH6PNqCFdpcBxGYXoUQfp34c

tag: #smalldatabase

4)) Both the caller\_pc and responder\_pc have a small udp socket.  
The UDP socket sends and receives messages via the UDP protocol;  
[Network socket - Wikipedia](https://en.wikipedia.org/wiki/Network_socket);  
[UDP/datagram sockets | Node.js v23.9.0 Documentation](https://nodejs.org/api/dgram.html)  
[Repository search results · GitHub](https://github.com/search?q=udp+socket)  
[socketserver — A framework for network servers — Python 3.13.2 documentation](https://docs.python.org/3/library/socketserver.html)

5))The caller\_pc sends to the responder\_pc the string ‘picture\_jhon\_2009.jpg’ over UDP.  
Here we assume the caller\_pc knows the responder\_ip;

6))The responder\_pc replies to the caller\_pc with the string ‘QmRBkKi1PnthqaBaiZnXML6fH6PNqCFdpcBxGYXoUQfp34a’, over UDP.  
Here we assume the responder\_pc knows the caller\_ip;

7))The caller\_pc download the file QmRBkKi1PnthqaBaiZnXML6fH6PNqCFdpcBxGYXoUQfp34a, with ipfs\_ipget

> **[GitHub - ipfs/ipget: Retrieve files over IPFS and save them locally.](https://github.com/ipfs/ipget)**
>
> Retrieve files over IPFS and save them locally.

8))Dynamicity.  
In the #smalldatabase, the user can change the old entry with the new entry:  
OLD ENTRY: ‘picture\_jhon\_2009.jpg’, QmRBkKi1PnthqaBaiZnXML6fH6PNqCFdpcBxGYXoUQfp34a  
NEW ENTRY: ‘picture\_jhon\_2009.jpg’, QmRBkKi1PnthqaBaiZnXML6fH6PNqCFdpcBxGYXoUQfp35d

---

<div class="post-metadata">

**Author:** ![hector](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/hector/32/178_2.png) [@hector](https://discuss.ipfs.tech/u/hector)\
**Post date:** [April 20, 2022, 11:24am UTC](https://discuss.ipfs.tech/t/proposal-ipfs-dynamic-website/14027/2 "2022-04-20T11:24:19Z")

</div>

This is essentially what ipns does, your database being the files in MFS. Updating the database means doing `ipfs ipns publish <mfs_root>`.

---

<div class="post-metadata">

**Author:** ![Tommy866](https://avatars.discourse-cdn.com/v4/letter/t/90ced4/32.png) [@Tommy866](https://discuss.ipfs.tech/u/Tommy866)\
**Post date:** [April 20, 2022, 6:44pm UTC](https://discuss.ipfs.tech/t/proposal-ipfs-dynamic-website/14027/3 "2022-04-20T18:44:37Z")

</div>

Yes. I know, ipns already does this.  
But when people use ipns, they usually use it with a http gatway.  
Example bellow.

[https://gateway.ipfs.io/ipns/k51qzi5uqu5dkkciu33khkzbcmxtyhn376i1e83tya8kuy7z9euedzyr5nhoew](https://gateway.ipfs.io/ipns/k51qzi5uqu5dkkciu33khkzbcmxtyhn376i1e83tya8kuy7z9euedzyr5nhoew)

The domain [gateway.ipfs.io](http://gateway.ipfs.io) is under the control of the ICANN, which is a centralized authority.

I wanna create a system like ipns which doesn’t need the http gatway.

I already know there are some alternative like [HandShake.org](http://HandShake.org) DNS, but projects like [HandShake.org](http://HandShake.org) use a blockchain.

I was trying to develop a simpler system.

Is it possible use IPNS without the http gatway??  
I don’t find any information online about this point in particular.

Every IPNS example in the official documentation uses the http gatway.

> **[IPNS | IPFS Docs](https://docs.ipfs.io/concepts/ipns/)**
>
> Learn about the InterPlanetary Name System (IPNS) and how it can be used in conjunction with IPFS.

---

<div class="post-metadata">

**Author:** ![hector](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/hector/32/178_2.png) [@hector](https://discuss.ipfs.tech/u/hector)\
**Post date:** [April 20, 2022, 10:04pm UTC](https://discuss.ipfs.tech/t/proposal-ipfs-dynamic-website/14027/4 "2022-04-20T22:04:48Z")

</div>

you can use ipns without gateways… just `ipfs get /ipns/xxxxx`.

---

<div class="post-metadata">

**Author:** ![Tommy866](https://avatars.discourse-cdn.com/v4/letter/t/90ced4/32.png) [@Tommy866](https://discuss.ipfs.tech/u/Tommy866)\
**Post date:** [April 20, 2022, 10:52pm UTC](https://discuss.ipfs.tech/t/proposal-ipfs-dynamic-website/14027/5 "2022-04-20T22:52:57Z")

</div>

OK. Thanks.  
Maybe this can help me.

---

<div class="post-metadata">

**Author:** ![noname](https://avatars.discourse-cdn.com/v4/letter/n/58f4c7/32.png) [@noname](https://discuss.ipfs.tech/u/noname)\
**Post date:** [April 24, 2022, 4:25pm UTC](https://discuss.ipfs.tech/t/proposal-ipfs-dynamic-website/14027/6 "2022-04-24T16:25:36Z")

</div>

> [@Tommy866](#):
>
> 8))Dynamicity.

Content Based Addressing is a feature of IPFS, it shouldn’t be considered as a limitation.

Your idea is nothing wrong, but this is against the philosophy of IPFS. You can have dynamic content based on IPNS, where your IPNS can point to any hash, or possibly other IPNS address. But having lot of IPNS addresses is not good either, IPFS is meant to be static, so that the files can be cached and later sent to other nodes. I think you should at a look at Decentralized Databases like OrbitDB and then have dynamic content over it.

Your concept of Dynamic website is not so clear, let’s say a JavaScript program gets file over HTTP (‘image.png’) and later the content is changed (still ‘image.png’). Does this mean that I have created something dynamic with IPFS ? **No!!**.  
The script is still the same, the script still has same IPFS hash. So in your case you are not actually creating any dynamic website at all, the way you get the IPFS hash is independent process from getting the content with IPFS.
