[Passed] Proposal to fund development of NuBox (Peerbox port)

tl;dr

Fund development of NuBox, a Peerbox fork (peerbox.me) with Peerbox functionality extended to cover all Nu specifics like motion voting and data feeds.

Motion hash: e46eb8612032713e58c9bb643da1ecc525a3e152
Address: BJ8vw82j8CTQwzi4QLocyddkgVtPkrcHXz
Amount: 4000 NBT


About Peerbox:

Peerbox is Peercoin related project, it’s goal is to deliver secure and easy to use environment for running full Peercoin nodes and enable secure PoS minting. It is focused on Raspberry Pi (all generations) platform. Project was founded almost two years ago and has been welcomed by the Peercoin community and has made a lot of users happy and eased them to help the network. Just recently Peerbox was redesigned as extension to Debian, instead of ArchLinux to ease integration with other use-cases of Raspberry Pi and make it easier to maintain. New, redesigned version still lacks some of premium security features of old Peerbox like Grsecurity hardened kernel, 2-factor authentication for SSH login and fully configured firewall but I am steadily bringing them back in.
To learn more please visit www.peerbox.me or dedicated Peercointalk forum board.

The NuBox:

NuBox would essentially be direct fork of Peerbox, however due to different nature of NuNet in contrast to Peercoin some thing would have to be different. Beside providing easy install on Raspbian platform via dedicated repository, NuBox should also take care of some nuances users meet daily when using NuNet via Raspberry Pi - even more when it is headless install.
Peerbox features peerbox command, which servers for this exactly - it eases controlling the Peerbox for end user. It allows easy unlocking of the wallet, checking number of connections, checking if local blockchain is not on wrong fork, etc. Port of peerbox command to NuBox would would also need to cover using data feeds, setting up voting for motions - all in user friendly manner.

Benefits for Nu:

Primarily it is beneficial to NuNet users who use Nu client on Raspberry Pi, however barrier to use this way is far less for all the less tech savvy users. Instead of going to something like this: https://docs.nubits.com/nu-raspberry-minting/ user would just type several commands in this terminal and get the properly running and per-configured NuNet client ready to mint or become a full node.
Updates are simple with system like this, there is no need to compile it by yourself on weak Raspberry every time. User would simply get the update as soon as it is available on the server.
Using of such system is also a breeze. Want to follow this new data feed - it will take you one terminal command. Want to vote for this motion - one command. Want to hide IP of your full node and go behind Tor - one command.
Increased security, I always build hardened binaries for Peerbox.
As direct consequence of this project NuNet should get a bump on full node count, and number of active motion voting participants.

To sum it up: installation, configuration and usage of the Nu on Raspberry are simplified with added benefit of increased security.


I would need about 4 weeks to implement if (counting from time when motion passes). This period includes testing and other unforeseen problems that might arise, it is not likely it will be passed.

=##=##=##=##=##=## Motion hash starts with this line ##=##=##=##=##=##=

Fund development of NuBox, a Peerbox fork (peerbox.me) with Peerbox functionality extended to cover all Nu specifics like motion voting and data feeds.

When motion passes, I will start working on this and within 4 weeks I will deliver:

  • Standards compliant, GPG signed Debian repository for NuBox (arm and x86_64)
  • Signed Nu wallet binaries with accompanying tools
  • Port of peerbox command with extended, Nu specific commands
  • Documentation on how to install and use NuBox
  • Any feature that users need but I have possibly omitted in this post with condition that it is communicated in first two weeks since motion passes and is not excessive/unrealistic
  • Source code for the full product.
  • Nu version updates for a period of 1 year, as long as they are compatible with existing codebase and don’t require major architectural overhauls.
  • After this period new motion will be started to extend maintenance period.
  • Nu will pay me 4000 NBT upfront for this project.

I will not be dealing with marketing, logo design and website. I propose that the same designer of all other Nu logos design this one too and that projects website is integrated into the rest of the project properly.

Address: BJ8vw82j8CTQwzi4QLocyddkgVtPkrcHXz
Amount: 4000 NBT

=##=##=##=##=##=## Motion hash ends with this line ##=##=##=##=##=##=

hash: e46eb8612032713e58c9bb643da1ecc525a3e152

13 Likes

This comes just at the right time, considering this thread:

I know PeerBox from when it was a complete standalone RaspberryPi image based on ArchLinux and loved it.
I’m aware that the new approach is inherently less secure than the ArchLinux image approach, but it might be a good compromise between ease of use and security.

sudo apt-get install nubox

is for sure simpler than compiling your own version :wink:

As you are going to provide a Debian repo for ARMv6/7 and x86_64, it would run on Ubuntu derivates as well as on Debian itself, right?
…supposing they run on an ARMv6/7 or x86 32-Bit or 64-Bit architecture, right?

NuBox would need to be based on Berkeley libdb4.8 to make it compatible with wallet files created by the official Nu client releases. I bet you already have that in mind.

The specification is very substantial.
Do you really mean it when you say

?

This might tie you for years to Nu :wink:

I have just some more basic questions:
How fast do you expect the repo to be updated in case a new client version is released?
Do you intend to keep more than one version in the repo?
E.g. at the moment there should be a 2.0.3-stable and a 2.1.1-beta
Who besides you can control the repo?

…I see some room for bcebox…just being bonkers :wink:

Great, I understand this can be used for both holding NSR and USNBT just as the official PC client, right?
Do you think you can make the Nu client work again on all Raspberry models? Or does that need stable Nu 2.1 source?

That would be a nice bonus. Getting the network safer.

I like it!
I just wonder, is it possible for an android tablet/phone to be routed and run linux and then run nu and ppc wallets and mint?
Or keep the android and run some kind of linux emulation and then run the wallets?
Has anyone tried this out?

Debian is Debian. It could work on Ubuntu and similar derivatives of Debian, but due to subtle differences in system design might mess up something.
But yes, just like with Peerbox nowdays - one would be able to install it on server or something.

Yes, I have seen that Nu depends on older and unsupported libdb. This can be solved with “hack” but it is not a long term solution and Nu devs should do something about it.

About updates (indefinite), well that is not so much work. I did say - as long as they are compatible with existing design it should be very simple and not so time consuming. It is basic support, I consider it as an obligation.

It should typically be withing 24h, but if there are some problems with build (like with 2.1 now) it could go up to 72h.

Yes, this is possible. I can maintain both versions in the same repository.

Only me. There is no other way of doing it due to GPG keys. However the binaries themselves can be hosted on official NuBits.com if shareholders agree with that. This would enable webmaster of Nu to deal with them too.

Yes, you are right.

Your sentence makes me think that there is some known problem with some specific version of Nu client and Raspberry? I am not aware of such problems, can you give me more details?
Other than that, it should work for all Raspberry Pi version out of the box.

If you have access to the bootloader you should be able to install/run any Linux that has support for the architecture.
At least Gentoo should do :wink:
If you don’t want to load an alternative Linux, root rights should allow you to open shells and install/compile applications.
But I’m not very familiar with doing that on mobile devices.
Sometimes I struggle with my RaspberryPis :wink:

The current v2.03 client requires a lot of memory and CPU. Way more than a peercoin client and it makes running a stable node on previous generations of Raspberries difficult. This issue is being addressed in the newer v2.1 client, but we still don’t have a stable official release for that. This thread shows some of the issues with the v2.1 client: Help us test Nubits v2.1.0. Hopefully this will be addressed soon, but you might want to wait for that before starting work on your project.

Some additional information regarding RaPi and hardware requirements - both RaPis have 1 GB RAM.

RaPi1:

nud getinfo | grep '"version"'
    "version" : "v2.0.3-dirty-beta",
[...]
PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
974 pi        20   0 1011m 840m  19m S  26.2 86.4  14874:23 nud

RaPi2

nud getinfo | grep '"version"'
    "version" : "v2.1.1-RC1-4-g047e5fe-dirty-beta",
[...]
top -p $(pgrep -d',' nud)	
[...]
PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
3381 pi        20   0  634m 391m 3592 S   6.5 40.2  12877:00 nud

RaPi1 runs for a long time, but as you can see both the RAM consumption as well as the CPU consumption are quite high - and this instance of nud has nothing to do, but broadcast liquidity information for some NuBots!
RaPi2 needs much less RAM and CPU and the total CPU time is only that high because of syncing the blockchain.

Ok, I see. I don’t think this would be a problem though. Some optimization to gain more useful RAM can be made, like I have done already with old release of Peerbox.
Maybe Nu should move to newer Bitcoin codebase as they have introduced many performance optimizations. However the biggest gain would be moving to leveldb instead of old Berkeleydb.

Anyway, I do not think this issues would tamper with development of the project.

Nu 2.1 code is already using leveldb and that’s why the RAM consumption went down quite far.
Berkeleydb is only continued for wallet support, but not for the blockchain.

Well then why do you worry :smiley:

Nu 2.1 … is unfortunately not ready for production yet.

Well I am saying that that should not interfere with development of NuBox.
Nu binary would simply be updated to 2.1 branch when the branch is ready.

I like the idea.
Being able to decide the monetary policies of a decentralized bank and transfer synthetic fiat anonymously on a raspberrypi would be awesome.
2 questions:

  • can u reuse the work done on nu raspberry pi binaries?
  • what is your hourly rate?

No, that is not possible. Proper Debian packages are needed.

  • what is your hourly rate?

I did not calculate sum needed for this project based on hourly rate. It was more like a round figure that should probably cover the hours of coding and testing.

2 Likes

I am preparing to finalize the motion.
One last question for Nu Shareholders and users.
How would you prefer installation of NuBox?

In the form of adding repository sudo apt-get install nubox but installing Raspbian on your own?

or

Should I periodically issue full, pre-configured Raspbian image along with the repository?

As a nushareholder, I’d give this project a green light. I am especially interested in the web GUI for configuring the wallets / motion votes and what not, so you wouldn’t even have to SSH into the Pi. I would buy myself 3 new Pis and mint nushares, blockshares and peercoins separately on each device. The fourth pi would share the internet. It’s because the 1 GiB RAM limit because having 3 wallets minting on the same pi is probably impossible.

1 Like

Peercoin is very lightweight by the way. It’s easy to pair with Nud or Bcexchanged.

I like this better. It not only faster to download but also preserve my configuration files, script, logs, and things I have installed.

Probably. But keep in mind that resource footprint is strongly correlated to how many coins/shares there are in the wallet.