Standard Grant: DNNS - Decentralized Notification Node System

DNNS - Decentralized Notification Node System Grant Proposal

Introduction

Project Name: DNNS - Decentralized Notification Node System

Name of the organization or individual submitting the proposal:
Nikita Orlov

Describe your project:
The project aims to build a decentralized notification system that allows users or services to run their own notification nodes. These nodes support both PUB/SUB (stateless) and PUSH (with temporary storage) modes. Notifications will be stored temporarily for delayed delivery (TTL-based). The system will use ed25519 keys for identity, compatible with the S5 and VUP ecosystems, ensuring seamless integration and user authentication across platforms. Communication will occur over WebSocket, enabling browser-based nodes. The core functionality of the system will be the synchronization of notifications across nodes in a peer-to-peer network. Additionally, we will develop SDKs for JavaScript and Golang for integration with the nodes. This technology can be adopted by other services within the VUP and Sia ecosystems, enhancing the user experience (UX) of these applications by providing decentralized, reliable, and user-controlled notifications.

Who benefits from your project?
The project benefits individuals seeking a decentralized, user-controlled notification system, as well as developers creating services or applications requiring push notifications. Services within the VUP and Sia ecosystems can leverage DNNS to improve their UX by integrating seamless, privacy-focused notifications. This system provides increased privacy, flexibility, and control over notification delivery.

How does the project serve the Foundation’s mission of user-owned data?
This project supports user-owned data by allowing users to run their own nodes that manage their notifications. Data is not centralized or controlled by a single entity, ensuring that users retain full ownership and control over their notification information. The use of ed25519 keys, aligned with S5 and VUP, further ensures secure and user-controlled identity management. The system’s decentralized nature aligns with the Foundation’s mission by enabling individuals to store and manage their data securely and privately.

We cannot provide grants to residents of jurisdictions under increased FATF monitoring, those that have active OFAC sanctions, or those that fail our bank compliance tests. We also cannot provide grants if your payment bank account is located in those same locations. Please review the following list.

Are you a resident of any jurisdiction on that list? No

Will your payment bank account be located in any jurisdiction on that list? No


Grant Specifics

Amount of money requested and justification with a reasonable breakdown of expenses:
The total amount requested is $60,000 USD. The breakdown of expenses is as follows:

  • Development of desktop node and browser node: $30,000
  • Development of server infrastructure and algorithms for retransmission and node discovery: $15,000
  • SDK development for JavaScript and Golang: $5,000
  • Testing and bug fixing: $2,500
  • Demo application development (WebRTC-based): $5,000
  • Miscellaneous costs (hosting, tools, etc.): $2,500

Everything will be implemented by me, so it’s basicly my salary.

Timeline with measurable objectives and goals:

  • Month 1: Develop algorithms and data formats for notifications, ensuring compatibility with S5 and VUP ecosystems.
  • Month 1-2: Build and test desktop node for notification handling.
  • Month 2-3: Build browser node with internal API, allowing notification interaction in-browser.
  • Month 3-4: Develop server for processing requests and handling node communication.
  • Month 4-5: Implement retransmission algorithms and node discovery features.
  • Month 5-6: Develop SDKs for JavaScript and Golang, with integration support for VUP and Sia services.
  • Month 6-7: Conduct extensive testing, bug fixing, and optimization.
  • Month 7: Develop and deploy WebRTC-based demo application for browser-based notification exchange and call initiation, followed by public release.

Potential risks that will affect the outcome of the project:

  • Technical challenges in peer-to-peer synchronization: This could impact the reliability of message delivery.
  • Security risks: Ensuring the security of data and the node network in a decentralized system is critical.
  • Delays in development: Depending on the complexity of certain algorithms or integration with VUP/Sia ecosystems, the project timeline could experience delays.

Development Information

Will all of your project’s code be open-source?
Yes, the entire project will be open-source. The code will be available for review and contribution on GitHub.

Do you agree to submit monthly progress reports?
Yes, progress reports will be submitted monthly in the forum to keep the community updated on the project’s progress.


Contact Info

Email: [email protected]

Any other preferred contact methods:
Feel free to reach out to me via Discord at stringnick6408 for real-time communication.

Previous work

We already tried to participate as a team, but u rejected due already existed closely same project (pwd manager), so its my personal project.

My latest projects:
Nikita Orlov (StringNick (Nikita Orlov) · GitHub ):
GitHub - StringNick/starknet-zig: Starknet library in Zig
GitHub - keep-starknet-strange/ziggy-starkdust: :zap: Cairo VM in Zig :zap:
GitHub - zig-bitcoin/coconut: :coconut: Cashu wallet and mint implementation in Zig
GitHub - zig-bitcoin/bitcoin-primitives: Libraries and primitives for Bitcoin, written in Zig.

So have looked at this request and… I really don’t see how this ties into Sia.

You claim you will use S5, but S5 at its core is a P2P net like IPFS, BitTorrent, or Dat. That does not actually integrate Sia or benefit the sia community for any Sia node software, or anything running ontop in a concrete way.

At the core this seems like a P2P push notifications system, which on its own is a unique idea if put into an existing P2P network. But… I do not see where Sia fts in.

FYI, many projects use S5 or IPFS as a medium to upload data TO Sia, but its a layer, its not the end goal.

I would recommend you re-eval. Additionally, putting message storage for this into a sia bucket may or may not be a good design choice, I cannot say. But if it isn’t, I would not try to force it just to get funding, meaning if its bad engineering, its a bad idea.

Kudos.

Hey, maybe I didn’t explain it clearly — you’re right that this is kinda like a push notification system, and yeah, similar in spirit to something like S5. The idea is to build something that supports delayed delivery (where the message is stored on Sia nodes) and one-to-many sending.

The benefits are along the same lines as what S5 provides, just with a different angle. For example, it could improve the UX for apps built on top of Sia/S5 — think syncing notifications, password manager sharing, or anything else that could use lightweight, decentralized alerts.

That’s the rough idea — curious what you think, and totally open to suggestions if there’s a better way to approach this!

My criticism is that you have not explained the Sia part. S5/IPFS are a medium. They are a BitTorrent, but it doesn’t inherently mean the seeders are putting the data on Sia…

P2P nets are agnostic to where their actual data is stored.

So if you want to build a P2P notification system, but are not being clear on HOW the Sia part will work, or any technical details on your plans there, then you are basically asking Sia to fund a grant that won’t directly benefit Sia users and won’t increase storage demand.

I would revise your grant request and be more explicit about this as the grant form asks the questions it does for a reason, and using S5 doesn’t automatically mean data will go to Sia, as Sia is just a storage driver. Many often do mean they will, but yours have been pretty vague IMO.

Kudos.

Hey! I think there’s a bit of a misunderstanding. If it helps to tie it more clearly to Sia, then yeah, we can use Sia as the storage layer for temporarily cached notifications, because i thought that i can use S5.

Also, like I mentioned — there will be two types of pushes: permanent, and persistent with a TTL. The ones with TTL will be stored on Sia for that limited time.

And if Sia has plans to expand the protocol in a way that enables more on-chain-style features (like calldata in Ethereum or something similar), I’d be super happy to design this project around that too.

At the end of the day, the goal here is to build a tool that expands the Sia toolkit and helps improve the experience for apps in the Sia ecosystem.

For your information, Sia wasn’t designed to be a permanent storage. The data is only stored for so long as it’s paid for.

Your also-mis understanding Sia in terms of smart contracts because it has no EVM, and the contracts are part of the core consensus. calldata is a EVM concept as well.

Sia is not arweave or BTC ordinals as well.

So overall it seems this is a idea that might be adjacent to apps for Sia, but does not directly benefit Sia users as direct utilities for renterd, walletd, or hostd, use Sia direct via renterd, or via a P2P net, or via a L2.

That is my current view on this. Using S5 can inherently use Sia to be clear (and I discussed that in my prev post), but your explanation of all this makes it clear that storage of the notification data is secondary, which makes this ask honestly a stretch IMHO, given Sia is a storage network.

I am happy to be wrong, but that is my current interpretation so far. Additionally, the grant committee (which im not part of) has a rule of thumb to require a small MVP grant before funding anything larger, especially for new developers. So I would recommend revising this down to a smaller scope :man_shrugging:.

persistent storage (in terms of IPFS (FIlecoin) and etc), that u need some notification that u need to send for example some group of users (or multiple devices) and u want provide this push to all of them (so it’s like short time storage with some TTL)

Thanks for the review!

Yeah, I totally agree with your points. Like I mentioned earlier, the main idea behind this project is to build tools that help users of Sia-based apps — or devs who want to build in the Sia ecosystem — create better software.
I understood what u want say to me, that most of grant projects, they add more and more “conenctors” to sia, but my idea, can only improve development and user experience of application builted on top of sia or other projects, benefits for Sia community is only that we can use sia as a storage, so users that impelement all their application on top of sia, can also use open-source solution for p2p notification and sdks that have option with “Persistent” storage (for exmpl. short-time ttl). Maybe i am wrong and it will not bring value.
Maybe, we can discuss it in discrod or somewhere, what project or tools will bring value for Sia. But in my view, it useful toolchain, but maybe not enough.

To be clear S5’s end user apps are Vup which is an obvious case storage wise, and Lume is a portal service offering a web2.5 approach to uploading data. Those types of things are clearly intended for uploading a lot of data to Sia.

What you have communicated idea wise has a lot more focus on the P2P parts, while frankly kind of handwaving? the storage parts? If the data is only stored temporarily, that in itself questions if it would make sense for it to be on Sia, if you viewed Sia as a sort of S3 bucket. I can’t answer that but its a question for thought.

So with your statement Honestly, I don’t think S5 or Lume have a much more “direct” utility than what this project aims to offer., they objectively do as they are directly enabling more data demand to the network.

So personally, I think this project idea is cool, and I have gone fairly deep on several P2P tech stacks. But if it is something that aligns and benefits Sia in economic/growth interest is the question here since the network would be grant funding it.

That isn’t up to me to decide, but my opinion is im currently skeptical on the Sia aspect here. Sia has funded several notification bot systems that work direct to help users, and IIRC those have not gotten heavily utilized yet. But if you were to create this, tailoring it such it would have a direct utility around informing about things for users storage on any of the networks needs would be a more tangible pitch. Though im not sure if more bot/alert programs are needed yet (you can go hunt for those grant projects and see).

Anyways, that is my constructive criticism so far.

Kudos.

yeah, i was changed message after, so i understand ur point. yes i can mention, that we can store every push event, but not every project wants this overhead. so that is why open for a discussion, and ready to be refused, maybe i need to watch from another angle on this idea.
thank you again, criticism - its good!

I occasionally reconsider this idea, and I believe it could be highly beneficial for applications leveraging the Sia network, even if the network has limited activity. The focus is on distributed storage, with permanence to the extent that Sia supports it. Applications could interact with users by, for example, sending file links, providing access, or notifying them about other events.

In essence, this is a toolchain that developers can integrate into their projects. While it could enable backups on Sia, that’s not the primary goal. The main purpose is to create an open-source tool addressing the needs of various grant projects I’ve seen discussed in forums. These projects often suffer from poor user experience due to the lack of decentralized mechanisms for user notifications. For instance, a password manager could notify other devices about updates or enable functionality for sharing password access with a group. I believe you can see the wide range of potential applications.

If you envision this in a different form, I’d be happy to discuss it further. It’s possible this isn’t necessary at all, but I’m open to exploring the idea and refining it as needed.

Thanks for your proposal to The Sia Foundation Grants Program.

After review, the committee has decided to reject your proposal citing the following reasons:

  • This scope is pretty large and for a first-time proposer, the committee would like to see a small grant proof of concept/MVP first.
  • This doesn’t seem to interface with Sia, it doesn’t add storage or direct value to the network.
  • Your latest update indicates a major need in the ecosystem for decentralized user notifications. The committee doesn’t share this view.

We’ll be moving this to the Rejected section of the forum. Thanks again for your proposal, and you’re always welcome to submit new requests if you feel you can address the committee’s concerns.

1 Like

thank you for response, i understand that i need make something small, to move to more big projects, i have few ideas, i will try create new, not a big proposals, that fit to direct use of sia and help ppls (incl. me).