# Alternative Node Software

**URL:** <https://forum.storj.io/t/alternative-node-software/27161>\
**Category:** Node Operators\
**Created:** [July 17, 2024, 1:39pm UTC](https://forum.storj.io/t/alternative-node-software/27161 "2024-07-17T13:39:33Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![pangolin](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/pangolin/32/15685_2.png) [@pangolin](https://forum.storj.io/u/pangolin)\
**Post date:** [July 17, 2024, 1:39pm UTC](https://forum.storj.io/t/alternative-node-software/27161/1 "2024-07-17T13:39:33Z")

</div>

![](https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExdmhyNmR5czBtMzY1Z2NxejE3eWozbGk4cWJ0bzEwem1odTZ2ajF5eSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/O6cLcNr9HD6yk/giphy.gif)

---

<div class="post-metadata">

**Author:** ![tylkomat](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/tylkomat/32/62_2.png) [@tylkomat](https://forum.storj.io/u/tylkomat)\
**Post date:** [July 17, 2024, 1:50pm UTC](https://forum.storj.io/t/alternative-node-software/27161/2 "2024-07-17T13:50:01Z")

</div>

Why not contributing to the existing one ? It’s open source.

---

<div class="post-metadata">

**Author:** ![pangolin](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/pangolin/32/15685_2.png) [@pangolin](https://forum.storj.io/u/pangolin)\
**Post date:** [July 17, 2024, 1:59pm UTC](https://forum.storj.io/t/alternative-node-software/27161/3 "2024-07-17T13:59:14Z")

</div>

> [@tylkomat](#):
>
> Why not contributing to the existing one ?

1. Golang is not my prefered language for such project.
2. The existing approach might be a dead end. I would rather build something new from scratch.

---

<div class="post-metadata">

**Author:** ![andrew2.hart](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/andrew2.hart/32/6415_2.png) [@andrew2.hart](https://forum.storj.io/u/andrew2.hart)\
**Post date:** [July 17, 2024, 3:31pm UTC](https://forum.storj.io/t/alternative-node-software/27161/4 "2024-07-17T15:31:37Z")

</div>

You can start your own satellite and develop your node connected to that. Otherwise, you have to use the official storagenode.

I’m noone by the way

---

<div class="post-metadata">

**Author:** ![littleskunk](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/littleskunk/32/63_2.png) [@littleskunk](https://forum.storj.io/u/littleskunk)\
**Post date:** [July 17, 2024, 4:19pm UTC](https://forum.storj.io/t/alternative-node-software/27161/6 "2024-07-17T16:19:52Z")

</div>

I think the point was more about developing your own storage node. You would need to contact a satellite for that and currently there is none that would upload to your self developed storage node version. So at least initially you would have to setup a small test satellite by yourself. Once your development is finished and stable enough there might be a way to connect to the official satellites and the test satellite can be sunset.

---

<div class="post-metadata">

**Author:** ![pangolin](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/pangolin/32/15685_2.png) [@pangolin](https://forum.storj.io/u/pangolin)\
**Post date:** [July 17, 2024, 4:30pm UTC](https://forum.storj.io/t/alternative-node-software/27161/7 "2024-07-17T16:30:03Z")

</div>

Connecting to the official satellites is the only goal that could justify to start such development. This obviously needs storj to agree, thus my question.

---

<div class="post-metadata">

**Author:** ![Dr.Ko](https://storj.bcdn.literatehosting.com/letter_avatar/dr.ko/32/5_5575768a8748004e209b776fc1b2916d.png) [@Dr.Ko](https://forum.storj.io/u/Dr.Ko)\
**Post date:** [July 17, 2024, 5:24pm UTC](https://forum.storj.io/t/alternative-node-software/27161/8 "2024-07-17T17:24:34Z")

</div>

Wouldn’t it be welcome if it was for the common good? 😊

---

<div class="post-metadata">

**Author:** ![Knowledge](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/knowledge/32/10681_2.png) [@Knowledge](https://forum.storj.io/u/Knowledge)\
**Post date:** [July 17, 2024, 5:41pm UTC](https://forum.storj.io/t/alternative-node-software/27161/9 "2024-07-17T17:41:25Z")

</div>

Probably would be ideal to learn the language and work within the existing framework.

---

<div class="post-metadata">

**Author:** ![Ambifacient](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/ambifacient/32/7815_2.png) [@Ambifacient](https://forum.storj.io/u/Ambifacient)\
**Post date:** [July 17, 2024, 5:51pm UTC](https://forum.storj.io/t/alternative-node-software/27161/10 "2024-07-17T17:51:25Z")

</div>

Dumb question but couldn’t you just run a node without explicit permission? The node software is open source and the identify files can be generated, so you just need to impersonate the existing nodes.

I’m not sure if Storj legal will give you the green light but if you have something compelling developed I’m sure they will be all ears to integrate (maybe less so if not written in Go). Using your Chia reference, like how madmax is now working for Chia officially.

---

<div class="post-metadata">

**Author:** ![mattventura](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/mattventura/32/7831_2.png) [@mattventura](https://forum.storj.io/u/mattventura)\
**Post date:** [July 17, 2024, 6:32pm UTC](https://forum.storj.io/t/alternative-node-software/27161/11 "2024-07-17T18:32:30Z")

</div>

The thing is, this is one of the use cases where Golang is pretty good. You’d be hard-pressed to make something that performs better in another language.

---

<div class="post-metadata">

**Author:** ![arrogantrabbit](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/arrogantrabbit/32/11200_2.png) [@arrogantrabbit](https://forum.storj.io/u/arrogantrabbit)\
**Post date:** [July 17, 2024, 6:49pm UTC](https://forum.storj.io/t/alternative-node-software/27161/12 "2024-07-17T18:49:26Z")

</div>

> [@mattventura](#):
>
> You’d be hard-pressed to make something that performs better in another language.

Not to mention, reimplementing all the functionality that already exists in go libraries.

> [@pangolin](#):
>
> The existing approach might be a dead end. I would rather build something new from scratch.

Starting from scratch makes zero sense in project like this. You don’t want to step through the same pitfalls and debug bugs that have already been fixed.

If you have improvements in mind - submit PR. If your PRs keep getting rejected and you are at the point when your vision drastically diverts from the storj teams’ vision – fork the project and drive it. (Or join the team and transform the company from inside. Up to you. But starting from scratch is a dead end.)

> [@Knowledge](#):
>
> learn the language

Go is one of the easiest and simplest languages out there.

Anecdotally, C/C++ developer for few decades, and recently I had to do something in Python and Go. It took me an order of magnitude less time to figure out Go compared to Python.

And besides, some features there are just magnificent (I’m talking go routines and channels).

You can start with the tutorial on the official web site to get a quick grasp on the syntax, and then go watch Rob Pike’s talks on YouTube to understand the motivation behind the concepts.

---

<div class="post-metadata">

**Author:** ![littleskunk](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/littleskunk/32/63_2.png) [@littleskunk](https://forum.storj.io/u/littleskunk)\
**Post date:** [July 17, 2024, 6:56pm UTC](https://forum.storj.io/t/alternative-node-software/27161/13 "2024-07-17T18:56:57Z")

</div>

> [@Ambifacient](#):
>
> Dumb question but couldn’t you just run a node without explicit permission? The node software is open source and the identify files can be generated, so you just need to impersonate the existing nodes.

In small numbers that will work. Scale this up and storj will be forced to implement counter measures. We are talking about customer files that are at risk here. This is not chia where worst case you just don’t get the reward. We are talking about customer data here and if that gets lost we all go home with no payout. So lets better play this safe. Make it an alternative node software that the official satellites don’t select for uploads, work on it until it is proven to be stable and safe to use. Lets not start from the end and just pretend this alternative storage node would be magically free of bugs.

---

<div class="post-metadata">

**Author:** ![tylkomat](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/tylkomat/32/62_2.png) [@tylkomat](https://forum.storj.io/u/tylkomat)\
**Post date:** [July 17, 2024, 6:57pm UTC](https://forum.storj.io/t/alternative-node-software/27161/14 "2024-07-17T18:57:57Z")

</div>

How long do you think a non compliant node will last on the official network or do you expect Storj to give you a free pass to do whatever with customer data?

---

<div class="post-metadata">

**Author:** ![pangolin](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/pangolin/32/15685_2.png) [@pangolin](https://forum.storj.io/u/pangolin)\
**Post date:** [July 17, 2024, 7:05pm UTC](https://forum.storj.io/t/alternative-node-software/27161/15 "2024-07-17T19:05:05Z")

</div>

That alternative node would respond to any request just like the official one. So what do you mean by ‘compliant’?

---

<div class="post-metadata">

**Author:** ![tylkomat](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/tylkomat/32/62_2.png) [@tylkomat](https://forum.storj.io/u/tylkomat)\
**Post date:** [July 17, 2024, 7:06pm UTC](https://forum.storj.io/t/alternative-node-software/27161/16 "2024-07-17T19:06:58Z")

</div>

It has to respond in the same way as the original client, and be always up to date with changes. Otherwise the clients are not interchangeable. Not being interchangeable means also custom changes to the satellite.

It would be better to submit RFCs towards better algorithms. The programming language doesn’t matter in the end. What matters is how the software works.

---

<div class="post-metadata">

**Author:** ![Toyoo](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/toyoo/32/1126_2.png) [@Toyoo](https://forum.storj.io/u/Toyoo)\
**Post date:** [July 17, 2024, 9:28pm UTC](https://forum.storj.io/t/alternative-node-software/27161/17 "2024-07-17T21:28:36Z")

</div>

> [@littleskunk](#):
>
> Lets not start from the end and just pretend this alternative storage node would be magically free of bugs.

It doesn’t have to be free of bugs. All it has to be is to have _less_ bugs.

(that would still be quite an achievement, obviously!)

---

<div class="post-metadata">

**Author:** ![pangolin](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/pangolin/32/15685_2.png) [@pangolin](https://forum.storj.io/u/pangolin)\
**Post date:** [July 17, 2024, 9:34pm UTC](https://forum.storj.io/t/alternative-node-software/27161/18 "2024-07-17T21:34:30Z")

</div>

The reason for asking this question is performance not bugs. A software free of bugs doesn’t exist.

---

<div class="post-metadata">

**Author:** ![Toyoo](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/toyoo/32/1126_2.png) [@Toyoo](https://forum.storj.io/u/Toyoo)\
**Post date:** [July 17, 2024, 9:35pm UTC](https://forum.storj.io/t/alternative-node-software/27161/19 "2024-07-17T21:35:16Z")

</div>

Then golang is not the bottleneck. Algorithms and persistent data structures are.

---

<div class="post-metadata">

**Author:** ![littleskunk](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/littleskunk/32/63_2.png) [@littleskunk](https://forum.storj.io/u/littleskunk)\
**Post date:** [July 17, 2024, 9:59pm UTC](https://forum.storj.io/t/alternative-node-software/27161/20 "2024-07-17T21:59:39Z")

</div>

> [@Toyoo](#):
>
> It doesn’t have to be free of bugs. All it has to be is to have _less_ bugs.
> 
> (that would still be quite an achievement, obviously!)

The number of bugs isn’t that important. There are certain code paths like for example customer downloads or garbage collection that need some stability. Also the rollout strategy of new versions makes a difference. In return feel free to implement as many bugs as you want on the dashboard. I don’t mind a broken dashboard at all. I can work around that. But you know there are a few people that will call every bug a high priority that needs to be fixed yesterday. It will be interesting to see how that dynamic plays out.

---

<div class="post-metadata">

**Author:** ![Toyoo](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/toyoo/32/1126_2.png) [@Toyoo](https://forum.storj.io/u/Toyoo)\
**Post date:** [July 17, 2024, 10:03pm UTC](https://forum.storj.io/t/alternative-node-software/27161/21 "2024-07-17T22:03:00Z")

</div>

> [@littleskunk](#):
>
> I don’t mind a broken dashboard at all.

Me neither, but I’m sure @Alexey would complain with the increased forum moderation workload.

[Next page](https://forum.storj.io/t/alternative-node-software/27161.md?page=2)
