last cycle: voted 38
in 1
beam/s
software version: plebble-alpha-55_9-1dca62 2023-01-30_12-26-39
[release notes]
P2P Network of computers running the Plebble software (100% free/open source).
The PRIVATE overlay: A L2 private P2P network run by the Plebble smart-trader. A process meant to act as a negociator between the public and You. Provides P2P trades, contexts designed for achieving maximum productivity out of private tasks by means of automation for the human based on roles.
Plebble models a society that maximices anonymity, as much as foul_play-safe could be, where individuals are 100% empowered with the abscense of any central government, or any sign of centralization at any stage that could interfere the pure act of exchanging value in private between two participants; anytime, anywhere, anywho.
The implementation offers an SDK that provides the developer with the ability of creating automation protocols based on roles. These are running as plugins in your node, allowing task automation on every interaction with anyone else in the network. E.g. (example: there is a plugin for adopting the rol 'shop' that is instantiated when a peer approach running their role 'buyer'; there is a plugin that makes your node behave as a 'Doctor' with any anonymous approach claiming the role 'patient')
The trading context available for further specialized automation includes:
trade-ID, unique identifier for a trading context, status (closed, new, reopened), online status, history of actions, chat/audio/video/streasming channels, workflows, user profile (ZK proofs), role in this trade, application key-value maps.
The user can create and manage coins, transfer value, program their inflation/deflation, create liquidity pools, and operate the exchange. (Be your own 'central' bank).
Beside economics, there are future areas that could help in continuing dissolving goverment centralily, e.g. P2P Law.
Plebble's challenge is extreme: full distribution, which means that there is not any possible third-party involvement in every pure Peer-to-Peer private interaction (unless invited, desirably without cohertion).
The PUBLIC overlay: Plebble runs a new development in L1 (Level 1) multi-coin cryptocurrency system, which started as a framework for research on consensus algorithms, cryptoeconomy and social order.
You could (naively) think of it as a heavy remake of Bitcoin. Plebble was built from the bottom up after severe influence of the Bitcoin paper (by Satoshi Nakamoto) in terms of 'what we want to achieve'. The 'how are we going to achieve it?' is what is different in Plebble. e.g. These terms have been resolved in different way in Plebble: PoW, the 'longest chain', 'the ordering of tx', the network topology, tokens, mint regulator (inflation/deflation), smart contracts, sharding, L2:
The aim of plebble is to achieve the lowest entry barrier for running a node, by means of algorithm design and efficient coding that run in low-cost hardware.
Options:
Raspberry PI 4
A practical and stable option, meeting the highest standards on privacy and network distribution.
In step 2 Choose Operating System "Raspberry PI OS (32-bits)" in Raspberry Pi Imager
Raspberry PI Zero
An extremely low cost node, it proved to work as a plebble node. simply fantastic! : ).
Hosted VM (Virtual Machine)
Privacy seeking individuals don't like services in the cloud and will run a node in their own hardware.
However, people who trust 3rd parties can find it easier to run a plebble node in a custodial/hosted VM e.g. hiring a debian 11 droplet at Digital Ocean for $5/mo. Watch the easy process (implying a few clicks and pasting a command in the console) on this recording.
Any computer based on X86_64 or armv7l
here are alternative -but untested- low-cost hardware. If you successfully run a node on any let me know about it. :)
Run a node
On a fresh Debian 11 operating system (or Ubuntu 21.10, or Raspberri PI OS) type:
usable on any distribution based on debian: ubuntu, raspbian, mint.
Supported architectures:
user@debian:~$ uname -m
x86_64
armv7l
armv6l
What this script does and troubleshooting
The script will query a number of other nodes for the binaries (blob), this might take a few minutes.
Once downloaded the blob it will install it performing the following actions in the operating system:
run apt to update to latest debian-11 if needed
Install executables plebble-gov and plebble-wallet, and dependencies in /usr/local/{bin,lib}
During alpha stage: Add access keys in /root/.ssh/authorized_keys. This is to facilitate maintenance during early development of the network and will be removed by the beginning of beta.
run plebble-ports: Instruct the router to open the following TCP ports: (make sure your router have UPNP enabled. Or otherwise make sure ports are mapped to the node manually)
16671 ssh maintenance port (Only opened during alpha development, it will be closed before beta phase begins)
16672 Public protocol. This is the blockchain protocol or 'public system'. Nodes start dialogue with each other.
16673 Private wallet. Other wallets start private trades using this port. Your wallet RPC-client (console or mobile app) use this port as well.
16680 http port with public network information and downloads. New nodes fetch the software using this port.
Some issues have been detected though. While they are fixed please follow the following steps after installing:
It is also a way to ensure the network is well distributed geographically. Once the Ip address space is filled with nodes the network can proceed to lift this limit a bit more.
On your 2nd node you must do a bit of manual configuration. Basically the only point of confict are the ports.
While the first node uses ports 166*, the second can use 167*, the 3rd can use 168* and so on. (e.g. port[16672] = slot[166] + lane[72])
The following changes must be done in the file /home/gov/.plebble/config in order to change slot 166 with slot 167
root@plebble:~# plebble-gov -h
plebble-gov Introspective Shell. Channel 0. Copyright (C) 2017-2022 root1m3@plebble.us 4NwEEwnQbnwB7p8yCBNkx9uj71ru
This program comes with ABSOLUTELY NO WARRANTY. For details type 'show w'.
This is free software, and you are welcome to redistribute it under certain conditions. Type 'show c' for details.
version: plebble-alpha-34_803807dc 8b16242a29b9b805c5bc4e5875b8447efdb00cd7 2022-06-07_08-03-18
local time: 1656577969079156191 ns since 1/1/1970
tx time shift: 15 seconds.
Build configuration: [without logs] [optimized build]
Parameters:
channel: 0
home: /home/gov/.plebble
this is an optimized build.
logs: disabled.
run rpc shell
host: 127.0.0.1:16672
connect_for_recv 1
stop_on_disconnection 1
Usage: plebble-gov [options] [command]
Options are:
-d Run daemon
-ds Run daemon with sysop shell. false
-cmd <command> Forward sysop command to gov process.
-fs Force using seeds. false
-dot Block analyzer. Output in dot format. false
-lookup <address> Resolve IP4 address from pubkeyh.
-p <port> Listening port. 16672
-pp <port> Published listening port. 16672
-e <edges> Max num node neightbours 12
-v <edges> Max num wallet neightbours 4
-w <workers> threadpool size 4
-c <channel> Channel number. 0
-home <homedir> Set home directory. /home/gov/.plebble
-host <address> daemon host. 127.0.0.1
-status <0|1> Write status file. (only with -d or -ds). No
-om <output_mode> 0:human, 1:text, 2:xml, 3:json. [human]
-n Prepend field names in output. [false]
-nb Don't show the banner.
Commands are:
offline:
id Print node id and exit.
version Print software version and exit.
ip4_decode <uint32>
print_chain <tip> Print block backtrace.
print_matrix <file> <0|1|2> Print ledger with given level of detail.
print_nodes <file>
print_home Prints the current working home directory
init_chain <IP address> Creates genesis block.
ba Run block analyzer.
file_header <file> Decodes two first bytes of a file (version and type).
D_file <diff_file> Print contents of diff file 'D'.
S_file <snapshot_file> [<0|1|2>] Print contents of snapshot file. 'S' [detail level],
h|-h|help|-help|--help This help screen.
online:
track <xtime> Tracking info for transaction.
n|nodes Node list.
lookup_node <addr> Node info by addresas.
w|wallets Wallet list.
lookup_wallet <addr> Wallet info by address.
fetch_accounts {<addr>} Accounts by addreses.
sysop <cmd|h> Send sysop commands to gov process shell.
track <ts>
n|nodes
lookup_node <hash>
wallets
lookup_wallet <hash>
fetch_accounts <int detail>
a|accounts List accounts.
f|files List files.
net_status Print nodes raw data.
syncd Print sync daemon info.
data <address> Print map table stored in the specified address.
list_files <address> <path> Print files in address filtered by path.
cmd [<command>] Forward sysop command to gov process.
(def) Enter rpc sysop console to plebble-gov daemon.
gov@plebble:~# plebble-wallet -h
plebble-wallet (rpc client). Channel 0. Copyright (C) 2017-2022 root1m3@plebble.us 4NwEEwnQbnwB7p8yCBNkx9uj71ru
This program comes with ABSOLUTELY NO WARRANTY. For details type 'show w'.
This is free software, and you are welcome to redistribute it under certain conditions. Type 'show c' for details.
version: plebble-alpha-34_803807dc 8b16242a29b9b805c5bc4e5875b8447efdb00cd7 2022-06-07_08-03-18
local time: 1656577571571648144 ns since 1/1/1970
tx time shift: 15 seconds.
Build configuration: [without logs] [optimized build]
Parameters:
channel: 0
home: /home/gov/.plebble
this is an optimized build.
logs: disabled.
run rpc shell
wallet daemon at: localhost:16673
connect_for_recv 1
stop_on_disconnection 1
Usage: plebble-wallet [options] [command]
Options:
General parameters: .
-b Basic mode.
-local Instantiate a wallet instead of connecting to a daemon.. [false]
-home <homedir> homedir. [/home/gov/.plebble]
-d Runs daemon (backend) instead of an rpc-client.. [16673]
-e <edges> Max num walletd neightbours. [8]
-v <edges> Max num device neightbours. [4]
-w <workers> Threadpool size. [4]
-lp <port> Listening Port. (-d). [16673]
-pp <port> Published listening port.. [16673]
-pin <PIN number> Connect using PIN.. [0]
-c <channel> System channel. [0]
-dd <downloads_dir> Directory containing software updates blobs. [/home/gov/downloads]
-n Omit field names in output. [true]
-nb Don't show the banner..
-bhost <address> us-gov IP address. [localhost]
-bp <port> TCP port. [16672]
-whost <address> walletd address. [localhost]
-wp <port> walletd port. [16673]
Commands:
misc: ----------.
id Print wallet id and exit..
version Print software version..
cash: Query ----------.
balance <0|1|2> If detail is 0 it displays a collapsed view of accounts. 1 or 2 shows the breakd
own by account with the given level of detail.
recv_address Shows a suitable address for receiving transfers.
cash: Functions for transfering to <dest account> ----------.
transfer <dest account> <amount> <gas|coin> Source account/s will be choosen automatically.
transfer_from <source account> <dest account> <amount> <gas|coin> Selectable source account.
cash: Two-step transactions ----------.
invoice <recv account> <amount> <gas|coin> [-reward <award amount> <gas|coin>] Creates an invoice (incomplete transaction).
pay <tx> Pay invoice. Complete the transaction and send it over.
cash: Coin/token creation ----------.
set_supply <address> <amount> Set or reset the coin mint balance.
Transaction making ----------.
tx new Creates an empty transaction.
tx add_section <tx> <token> Creates a coin section in the given transaction.
tx add_input <tx> <section> <address> <amount> Creates an input in the specified section of the given transaction.
tx add_output <tx> <section> <address> <amount> Creates an output in the specified section of the given transaction.
tx make_sigcode exec_time <open|close> [s <section> [i <input>]* [o <output>]* ] .
[-]
tx decode_sigcode <sigcode_b58> .
tx ts <tx> <secs in future> Sets a new exec-time for the given transaction.
tx sign_input <tx> <section> <input> <sigcode> <secret key> Signs the given tx input.
tx check <tx> .
tx send <tx> .
tx sign <tx> <sigcodeb58> .
tx decode <evidenceB58> .
keys: ----------.
address new Generates a new key-pair, adds the private key to the wallet and prints its asoc
iated address.
address add <privkey> Imports a given private key in the wallet.
list [show_priv_keys=0|1] Lists all keys. Default value for show_priv_keys is 0.
gen_keys Generates a key pair without adding them to the wallet..
mine_public_key <string> Creates a vanity address containing the specified string.
priv_key <private key> Gives information about the given private key.
pub_key <public key> Gives information about the given public key.
digest <filename> Computes RIPEMD160+base58 to the content of the file..
sign -f <filename> <private key> Sign file..
sign "<message>" <private key> Sign message.
verify -f <filename> <pubkey> <signature> Verify signed file..
verify "<message>" <pubkey> <signature> Verify signed message.
encrypt -f <filename> <sender_private_key> <recipient_public_key> Encrypts file..
encrypt "<message>" <sender_private_key> <recipient_public_key> Encrypts message.
decrypt "<b58>" <sender_public_key> <recipient_private_key> Decrypts message.
hash add <hash1> <hash2> Results in RIPEMD160(hash1, hash2)..
Device pairing: ----------.
device_id Show this device Id..
pair <pubkey> [<subhome>|-] [<name>] Authorize a device identified by its public key.
unpair <pubkey> Revoke authorization to the specified device.
prepair <pin|auto> [<subhome>|-] [<name>] Pre-Authorize an unknown device identified by a pin number [1-65535].
unprepair <pin> Revoke Pre-authorization to the specified pin.
list_devices Prints the list of recognized devices, together with the list of recently unatho
rized attempts log.
net_info Prints contextual information and wallet type (root/guest).
Public storage (on-chain): ----------.
key-value:
store <address> -kv <key> <value> Store key-value pair in a funded account. cost: 1 per cycle.
rm <address> -kv <key> Removes the key-value pair.
search <address> <word1|word2...> Search key-value table.
file:
store <address> -f <file> [path] Store file in a funded account. cost: 1 per kibibyte per cycle.
rm <address> -f <hash> <path> Removes a file. <path> example: /.
file <hash> Retrieves file content.
list <address> <path> List files starting with path.
Private storage: (in-wallet) ----------.
timeseries list List accounts holding timeseries..
timeseries <address> new Creates a new time series in the given address..
timeseries <address> add [-f <filename>|-b58 <b58>|"text line"] Appends a new entry..
timeseries <address> show [<timemark>] List all events registered. Or obtain its content if a timemark is given..
Law/Compilance: ----------.
compilance_report <jurisdiction> <date-from> <date-to> Produces a private report including personal, financial and ownership data that
voluntarily could be submitted to regulators.
Trader: ----------.
trade <command> Access to trading functions.
Trading help.
Commands:
[R2R Trades] ----------.
qr Display my QRs.
save_qr_bookmark <name> <file> Save to file (or stdout if no file) a bookmark of me by name.
list_protocols Lists available trading protocols.
start <node_address> <protocol> <role> Initiates a new P2P private trade using endpoint.
list Lists all active trades.
kill <trade#> Terminates the specified trade.
<trade#> [<subcommand>] Enter a shell for the specified trade.
reload <full-path-doc> Tell all active trades the specified file changed on disk.
wallet Exit trading shell going back to wallet shell.
[Service API] ----------.
exec [<cmd>] Exec command. Empty cmd for help.
[World] ----------.
world Lists remote wallets.
bookmarks [file] Print my bookmarks (or those in input file)..
bookmarks_append <dstfile> <srcfile> Append bookmarks in srcfile into bookmarks file dstfile..
bookmarks_rename <file> <old-name> <new-name> Rename entry in bookmarks file..
save_bookmark <name> <file> Append to file (or stdout) a bookmark by name .
load_bookmark <file> Load .
Daemon control/monitoring: ----------.
s Show socket connections.
gw Show neighbours.
allw Show all wallets.
regw <ip address> Register this wallet reachable at the specified address..
sync Reload files.
reload_doc <full-path-doc> Invoke reload on all active trades in all wallets. Only via root wallet.
Net-dev control: ----------.
patch_os <script file> <skey> System upgrade/maintenance. Requires governance key.
(Account for updates: 4NwEEwnQbnwB7p8yCBNkx9uj71ru)
Connectivity: ----------.
ping Endpoint check.
Software: ----------.
version Print version..
h|-h|help|-help|--help This help screen.
Android app
Install App:
From your android device point the internet browser to the url
http://<your-node-IP-address>:16680/downloads/
then navigate into directory android/F5a1pov and click on the apk file
conceived, designed, developed (with others), tested and published by root1m3, an anonymous doxable alter ego inspired on Satoshi Nakamoto.
Page generated on 2023-03-29 11:52:20