Sumcoin (abbreviated SUM), is a cryptocurrency design of proof-of-stake consensus as a security model minting system. Sumcoin is based on Bitcoin, while introducing many important innovations to cryptocurrency field including new security model, energy efficiency, better minting model and more adaptive response to rapid change in network computation power.
Specification | Descriptor |
---|---|
Ticker Symbol | SUM |
Algorithm | SHA-256 |
Maxiumum Supply | 200,000,000 + POS reward of 3% annual |
SegWit | Activate in future |
BIP58 Prefix Public | 0x04, 0x88, 0xB4, 0x1C |
BIP58 Prefix Private | 0x04, 0x88, 0xAB, 0xE6 |
Magic Number | 0xf1e6f9a2 |
BIP32 public: | 0xF588B21F |
BIP32 private: | 0xF588ADE5 |
pubKeyHash: | 0x3F |
scriptHash: | 0x7d |
wif: | 0xbb |
Mainnet RPC Port | 3332 |
Mainnet P2P Port | 3333 |
Electrum Mainnet RPC Port | 53332 |
Electrum Mainnet P2P Port | 53333 |
Testnet RPC Port | 13332 |
Testnet P2P Port | 13333 |
regtest port | 19444 |
Block Time | 60 Seconds |
Coinbase Transaction Maturity | 100 Blocks |
Confirmation | 6 Blocks |
Difficulty Adjustment Interval | 2880 Blocks |
Protocol Support | IPV4, IPV6, TOR, I2P |
https://sumcoin.org/ https://sumcoinwallet.org/ https://twitter.com/Sumcoinindex Fandom: https://cryptocurrency.fandom.com/wiki/Sumcoin
https://github.com/sumcoinlabs/sumcoin/wiki/Sumcoin-Core-(sumcoind)-BATM-Configuration
//---
Developers work in their own trees, then submit pull requests when they think their feature or bug fix is ready.
If it is a simple/trivial/non-controversial change, then one of the Sumcoin development team members simply pulls it.
If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion with the devs and community.
The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if the code doesn't match the project's coding conventions (see doc/coding.txt) or are controversial.
The master branch is regularly built and tested, but is not guaranteed to be completely stable. Tags are created regularly to indicate new official, stable release versions of Sumcoin.
For help: Open an Issue
Download versions & other Information: https://sumcoin.org
CPU, Proof of Stake
Copyright (c) 2009-2014 Bitcoin Developers Copyright (c) 2017-2023 Sumcoin Developers Copyright / Sumcoinlabs / Squawk LLC
Developers work in their own trees, then submit pull requests when they think their feature or bug fix is ready.
If it is a simple/trivial/non-controversial change, then one of the Sumcoin development team members simply pulls it.
If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion with the devs and community.
The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if the code doesn't match the project's coding conventions (see doc/coding.txt) or are controversial.
The master branch is regularly built and tested, but is not guaranteed to be completely stable. Tags are created regularly to indicate new official, stable release versions of Sumcoin.
Create swapfile using (copy and paste in all 4 for an easy life):
sudo fallocate -l 2G /swapfile;
sudo chmod 600 /swapfile;
sudo mkswap /swapfile;
sudo swapon /swapfile;
sudo nano /etc/fstab
/swapfile swap swap defaults 0 0
### On Ubuntu 16.04 - 18.04
sudo apt-get update
sudo apt-get install git
sudo apt-get install -y build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
sudo apt-get install -y libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
sudo apt-get install -y libboost-all-dev
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install -y libdb4.8-dev libdb4.8++-dev
sudo apt-get install -y libminiupnpc-dev
sudo apt-get install -y libzmq3-dev
sudo apt-get install -y libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
sudo apt-get install -y libqt4-dev libprotobuf-dev protobuf-compiler
### On Ubuntu 20.04
sudo apt-get update
sudo apt-get install git
sudo apt-get install -y build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
sudo apt-get install -y libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
sudo apt-get install -y libboost-all-dev
sudo apt-get install -y software-properties-common
sudo snap install bitcoin-core
sudo apt-get -y install libdb-dev
sudo apt install -y libdb++-dev
sudo apt-get install -y libminiupnpc-dev
sudo apt-get install -y libzmq3-dev
sudo apt-get install -y libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
sudo add-apt-repository ppa:rock-core/qt4
sudo apt install -y qt4-dev-tools libqt4-dev libqtcore4 libqtgui4
git clone https://github.com/sumcoinlabs/sumcoin.git
cd sumcoin
./autogen.sh
Next choose configuration option
Full Build
./configure
Build with GUI without tests (faster)
./configure --disable-tests
Build without tests or GUI
./configure --disable-tests --disable-bench --without-gui
### if Ubuntu 20.04+
./configure --disable-tests --disable-bench --without-gui --with-incompatible-bdb
make
It will then start compiling and take a while.
sudo swapoff /swapfile
After this it's ready to run. The executable will be in sumcoin/src. Run with:
./sumcoind -server -daemon
./sumcoin-cli stop
cd .sumcoin
touch sumcoin.conf
nano sumcoin.conf
server=1
daemon=1
rpcuser=YOURuserNAME
rpcpassword=YOURpassword
cd sumcoin/src/:./sumcoind -server -daemon
With GUI - Works for Linux terminal
cd sumcoin/src/qt/:./sumcoin-qt
Testing and code review is the bottleneck for development; we get more pull requests than we can review and test. Please be patient and help out, and remember this is a security-critical project where any mistake might cost people lots of money.
Automated Testing Developers are strongly encouraged to write unit tests for new code, and to submit new unit tests for old code.
Unit tests for the core code are in src/test/. To compile and run them:
cd src; make -f makefile.unix test Unit tests for the GUI code are in src/qt/test/. To compile and run them:
qmake SUMCOIN_QT_TEST=1 -o Makefile.test sumcoin-qt.pro make -f Makefile.test ./sumcoin-qt_test
The following example is based on the presumption that you have completed the prior steps of CAS installation on a hosted Internet server running Ubuntu 16.04 LTS, or higher, that the server is online, and the BATM has been successfully installed, configured, and tested for proper connectivity to the CAS.
A further presumption is that the sumcoind daemon has been installed, configured, and tested for proper use. This guide is merely designed to help you setup a working sumcoind daemon with a working CAS.
This is a step-by-step guide for adding sumcoind as a Hot Wallet Buy source. This is only an example and not to be construed as an endorsement for any particular exchange or wallet.
Create an RPC token for CAS to communicate with sumcoind: The RPC token is designed to eliminate the need for hard-coded passwords in configuration and script files. You will receive a password here ONCE. This password is required for CAS; it's your “RPC Password”. You must save it during this step.
wget https://raw.githubusercontent.com/sumcoinlabs/sumcoin/master/share/rpcauth/rpcauth.py -O ~/.sumcoin/rpcauth.py
chmod +x ~/.sumcoin/rpcauth.py
root@root:~/sumcoin/share/rpcauth
./rpcauth.py AnyNameYouWantHere
root@root:~/sumcoin/share/rpcauth$ ./rpcauth.py sumcoinatm
String to be appended to sumcoin.conf:
rpcauth=AnyNameYouWantHere:aac8dlfjsdfkjds876dfpdsfjhlsdlkfasd8plkdjf8d8984lndlkdfjsdflkjsadfkfjkhlkjhdjdfh3b90e44ddca2 Your password: T0Dx2VLjgikeTANOGosdifoIJH80Xn2E0Tcx-jdlh1GIcr8c=
The name you entered above, the resulting token, AND the generated password. You'll need it in the next step. The “AnyNameYouWantHere” is the “RPC User”, and the generated password is your “RPC Password” for CAS. The token is put in the sumcoin.conf file (as described below).
AnyNameYouWantHere:aac8dlfjsdfkjds876dfpdsfjhlsdlkfasd8plkdjf8d8984lndlkdfjsdflkjsadfkfjkhlkjhdjdfh3b90e44ddca2
T0Dx2VLjgikeTANOGosdifoIJH80Xn2E0Tcx-jdlh1GIcr8c=
While you might (under certain circumstances) might want to start the daemon exclusively from a command line, we urge you to change the following settings within sumcoind.conf and run sumcoind without parameters. Keep it simple!
deprecatedrpc=accounts
deprecatedrpc=estimatefee
addresstype=legacy
server=1
daemon=1
rpcallowip=your_Server_IP_for_CAS
The RPC (Remote Procedure Call) uses "credentials" to communicate between programs. It's required, and can be a security issue if insecure. Depending on the RPC settings and your firewall, you might expose your wallet to the world - and that would be unwise. Research the subject before randomly changing any settings.
rpcuser=AnyNameYouWantHere
rpcpassword=DontUseThis!YouHaveBeenWarned!
-or (preferred)-
rpcauth=AnyNameYouWantHere:e5305a4d7e2c760b196882d2896f77$c5b5e7f6970f7c0544244189f45622887642dca2f36761bcecc1d8055fe8416d
addresstype=legacy
deprecatedrpc=accounts
deprecatedrpc=estimatefee
server=1
daemon=1
rpcallowip=your_Server_IP_for_CAS
rpcauth=WalletName:bbc8fHC2jkeyojdlnlfnd89c1d61cee0aa70aa947e060617fd9231fac102b25cchh3jwls7bBb90e44ddca2
If using the first/top method, the rpcpassword is whatever you want it to be.
The “rpcuser/rpcpassword” method is deprecated because it is considered a security risk.
If using the second/bottom method:
the "rpcauth" is all one line,
Replace the “rpcauth” info with the token generated in the previous step. RPC tokens (like this) are the preferred method of RPC authorization.
Once you have modified sumcoin.conf, (re)start the daemon:
root@root:./sumcoind -server -daemon
Sumcoin Core and CAS will not be able to communicate until Sumcoin Core has "warmed up". It may take a few minutes - or longer.
Ascertain that you have a default address. Use:
sumcoin-cli listaccounts
"Sumcoin Core is still "warming up". Give it a few minutes and try again."
"Empty brackets {} indicate that no address exists. You must create one." Anything between the brackets means you can safely skip to the next part.
If you get empty brackets (result #2), then create a default Wallet Address and Account name by running:
sumcoin-cli getnewaddress "makeUpWalletNameBetweenQuotes"
CAS will NOT work with Sumcoin Core unless at least one address exists!
NOTE: sumcoind will take several hours (or longer) to completely synchronize with the Sumcoin network. CAS will NOT work with sumcoind until the synchronization is COMPLETE.
User: this is the “RPC User” you created earlier. For this example we'll just say it's “rpcuser”. Password: is the “RPCPassword” created by rpcauth.py earlier, or the one you made up (if you don't implement a token). For this example, we'll make the password just plain “rpcpw”.
this is the account name of your wallet. An account name is neither required nor suggested. Account usage is deprecated in sumcoind, however to view any existing accounts, type:
sumcoin-cli listaccounts
This parameter may be safely omitted if only a default account exists (""). If you choose to specify an account, select one named in the list. Whether using the default ("") or not, we'll refer to it as "walletname" in the examples below.
“http:walletName:rpcpw:DaemonIP:3332”
“http:rpcuser:rpcpw:DaemonIP:3332:walletname”
You should also now configure the Hot Wallet Sell using the same parameters if you implement it on a BATMThree (or other 2-way).
## You're done!
Testing and code review is the bottleneck for development; we get more pull requests than we can review and test. Please be patient and help out, and remember this is a security-critical project where any mistake might cost people lots of money.
Developers are strongly encouraged to write unit tests for new code, and to submit new unit tests for old code.
Unit tests can be compiled and run (assuming they weren't disabled in configure) with: make check
Large changes should have a test plan, and should be tested by somebody other than the developer who wrote the code.
The develop branch is used by developers to merge their newly implemented features to. Pull requests should always be made to this branch (except for critical fixes), and could possibly break the code. The develop branch is therefore unstable and not guaranteed to work on any system.
The master branch get's updates from tested states of the develop branch. Therefore, the master branch should contain functional but experimental code.
The release branch is identified by it's major and minor version number e.g. release-0.6
.
The official release tags are always made on a release branch.
Release branches will typically branch from or merge tested code from the master branch to freeze the code for release.
Only critical patches can be applied through pull requests directly on this branch, all non critical features should follow the standard path through develop -> master -> release-*