Code Monkey home page Code Monkey logo

peercoin / peercoin Goto Github PK

View Code? Open in Web Editor NEW
567.0 97.0 553.0 190.83 MB

Reference implementation of the Peercoin protocol.

Home Page: https://peercoin.net

License: MIT License

QMake 0.01% Python 13.19% Shell 0.78% Makefile 0.62% C++ 45.37% C 38.21% Objective-C++ 0.02% Roff 0.10% HTML 0.09% M4 0.90% Assembly 0.11% Java 0.01% Sage 0.24% Scheme 0.10% CMake 0.23% Dockerfile 0.03% Cap'n Proto 0.01% Batchfile 0.01%
blockchain decentralized cryptocurrency minable proof-of-stake

peercoin's Issues

PPcoin Rebranding

Seems like we need to rename the repo from ppcoin/ppcoin to peercoin/peercoin. All the other coins seem to use the full name, and I think it would look at little better for branding purposes.

Block structure isn't optimum when parsing a block without parsing TX

What differentiates Peercoin from Bitcoin is also its block structure. Peercoin adds a few new elements to the block structure such as transaction time and block signature. The signature is found at the end of each block after the transaction elements, and has a variable length:

v_chBlockSigSize; // Variable length integer block signature - signed by coin base txout[0]'s owner
m_chBlockSig; // Raw byte code data for the block signature

These two elements have a big impact on the block parsing processing optimization, especially if someone wants to dump the Blockchain without processing transactions (only the block header and signature). In Bitcoin the block size is described in the block header, and since the transaction elements (of variable size) are found at the end of each block, it allows the parser to calculate where the transaction fields end and jump to the next block without processing transactions. Regarding Peercoin, there is both: transaction elements and block signature. These two are of variable size, and it is thus not possible to know at which position the transaction description ends. By consequence, if someone wants to dump blocks without processing transactions he can't because transactions have to be processed in order to know where the v_chBlockSigSize is located...

An appropriate solution would either be to add an element to the block header to provide the transaction elements size or signature size. Or to move the signature elements above the transaction elements, just after the header (because v_chBlockSigSize would be directly accessible from the header).

Unit tests?

There are no unit tests for peercoin, or rather it takes the tests form Bitcoin without adjusting them at all. Wouldn't it be a good idea to create unit tests for peercoin?

Warning

I get a warning on the qt-wallet:

"Warning Checkpoint is too old. Wait for blockchain to download or inform the developers"

Compiled on Ubuntu today 27th September 2015. I am sure it is nothing but it is not a good introduction to the wonders of PPC (I have not waited for the blockchain to download).
ppc-checkpoint-too-old

How can I compile a ppcoind executable

I have downloaded the source and run qmake to generate the Makefiles. When then run make, the only executable created is "ppcoin-qt". How can I compile ppcoind executable (ie: the standalone daemon)?

Build fails on OS/X 10.9 Mavericks

There are two issues when building ppcoind on OS/X 10.9.

  1. A duplicate definition of insert() in serialize.h.
  2. Reference to array instead of boost::array in net.cpp.
  3. Somewhat outdated instructions for building on OS/X in doc/build-osx.txt and src/makefile.osx.

Made a pull request with fixes.

wrong block height in rpc console

In rpc console the estimated total blocks displays as 99999 not the current network height of blockchain.

Eventually if i have some time I may do a pr with a fix.

Invalid checkpoint found!

Hi!

I just received on the pool (peercoin.econing.com) a strange error never happens again:
It 's an error when rpc does some calls (getblock, listsinceblock, listaccounts)

Error: {"code":-2,"message":"Safe mode: WARNING: Invalid checkpoint found! Displayed transactions may not be correct! You may need to upgrade, or notify developers of the issue."}

thanks

listunspent

Why is listunspent not supported in ppcoin??

This is causing us real problems.

Can't build Qt version

The daemon version build fine.
When I try to build the Qt wallet I am getting:

src/qt/transactiondesc.cpp:247:19: error: variable has incomplete type 'CTxDB'
            CTxDB txdb("r"); // To fetch source txouts
                  ^
src/main.h:98:7: note: forward declaration of 'CTxDB'
class CTxDB;
      ^

About database.

What about an integration and use of LevelDB in ppcoin client like bitcoin client?
The database will grow up and become slow.

"timedrift" (nMaxClockDrift) exploit to increase minting probability

It has been suggested to change the timedrift parameter value from two hours (set by nMaxClockDrift in main.h) to one minute (http://www.peercointalk.org/index.php?topic=3931.msg37731#msg37731). This would prevent a malicious user to intentionally change his clock and mint far in the future and consequently drastically increase his chances to mint a PoS block.

A few minutes shouldn't be a big issue, it shouldn't lead to a lot of orphan PoS blocks due to desynchronized client clocks. However, I would recommend performing an appropriate study to determine which parameter's value is best. Several factors need to be taken into account such as: network speed or lags (i.e. wallet used behind a proxy), computer speed (i.e. slow Raspberry Pi), and anything else that could affect time during the minting process.

There are several studies online about time drifting distributions that would help figure out which is the optimal value to use to come up with a minimal orphan amount while preventing malicious users to increase their minting chances too much.

Some studies:
http://blog.codinghorror.com/keeping-time-on-the-pc/
http://vancouver-webpages.com/time/
http://vancouver-webpages.com/time/web.html

From what we can observe, if a web server is desynchronized by more than 20 seconds, then it is more likely that it is completely desynchronized (more than 2h, either voluntary or by mistake). If we consider computers, this study shows that this number is more likely to be around 400 seconds.

Consequently I would suggest that we adjust our timedrift parameter for a value of 360 seconds = 3 minutes. Which should cover the eventual network/computer lags. This number is not very accurate, and I believe we can perform a better analysis/study of which value we should use, but at least if a minter detects some orphan blocks he will understand by looking at his clock that this is the problem. Because a drifted clock of 3 minutes is pretty obvious to spot and correct.

Nowadays most computers are permanently synchronized with NTP servers, so it's pretty clear that two hours is way too much in any case and it's an unnecessary attack vector for whoever wants to exploit it (low impact but medium likelihood).

This issue is also discussed here: http://www.peercointalk.org/index.php?topic=2976.msg27924#msg27924

Error on build osx

Hi,

I have this error when I build the project, let me know what I am doing wrong, cheers Seb

opt/local/lib -o build/macdockiconhandler.o src/qt/macdockiconhandler.mm
src/qt/macdockiconhandler.mm:50:39: error: assigning to 'objc_object *' from
incompatible type 'DockIconClickEventHandler *'
...= [[DockIconClickEventHandler alloc] initWithDockIconHandler:this];
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/qt/macdockiconhandler.mm:60:6: warning: receiver type 'objc_object *' is not
'id' or interface pointer, consider casting it to 'id' [-Wreceiver-expr]
[this->m_dockIconClickEventHandler release];
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sendmany Functionality broken by RPC console patch

Patch 1e5a015 broke the sendmany functionality for windows by changing the syntax The Linux style syntax now works for windows instead. There needs to be some sort of documentation for anyone working on windows applications

From windows cmd try

ppcoind sendmany "[insert testnet account label]" {"""[insert testnet address]""":1.00,"""[insert testnet address]""":5.75,"""[insert testnet address]""":0.25}

0.3.0 works fine

0.4 "error type mismatch"
VS
ppcoind sendmany '[insert testnet account label]' '{"[insert testnet account address]":1,"[insert testnet account addressl]":1}'

0.3.0 "error type mismatch"

0.4 works fine

I've build 0.4 on both 1) a windows 7 machine using mingw, and 2) through gitian on ubuntu 12.04. to confirm this change persists for both styles of building.

Pull requests user avanesov spam?

All pull requests from user avanesov as of today are just find PPC replace by PPCoin or similar changes. And a few of them regarding copyrights might be inappropiate. Appear as spam to me.

Bitcoin reference

On the receive coins tab just above label it says: "These are your Bitcoin addresses ...." Should be Peercoin.

Occasional references to 'Bitcoin' or 'BTC' still exist through the user interface

I've created this issue to track commits against, that address areas of the UI that contain outdated language from the original port of the /bitcoin repo.

Please feel free to add comments to this issue that call out areas of the user interface where you have seen issues with labels or descriptive text, and I'll do my best to address them as time permits.

290825c..defc1c0 can not be compiled (boost problem?)

pulled current version (v0.6.3rc1?):

git pull
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 5 (delta 3), reused 5 (delta 3)
Unpacking objects: 100% (5/5), done.
From https://github.com/ppcoin/ppcoin
290825c..defc1c0 master -> origin/master
Updating 290825c..defc1c0
Fast-forward
src/base58.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

$ make -f makefile.unix
/bin/sh ../share/genbuild.sh obj/build.h
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/version.o version.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/checkpoints.o checkpoints.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/db.o db.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/init.o init.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/irc.o irc.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/keystore.o keystore.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/main.o main.cpp
main.cpp:2287:9: warning: this decimal constant is unsigned only in ISO C90 [enabled by default]
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/net.o net.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/bitcoinrpc.o bitcoinrpc.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/rpcdump.o rpcdump.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/script.o script.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/wallet.o wallet.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/walletdb.o walletdb.cpp
g++ -c -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/noui.o noui.cpp
g++ -pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security -g -DBOOST_SPIRIT_THREADSAFE -I/ppcoin/src -I/ppcoin/src/obj -DUSE_UPNP=0 -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -rdynamic -o ppcoind obj/version.o obj/checkpoints.o obj/netbase.o obj/addrman.o obj/crypter.o obj/key.o obj/db.o obj/init.o obj/irc.o obj/keystore.o obj/main.o obj/net.o obj/protocol.o obj/bitcoinrpc.o obj/rpcdump.o obj/script.o obj/util.o obj/wallet.o obj/walletdb.o obj/noui.o -Wl,-Bdynamic -l boost_system -l boost_filesystem -l boost_program_options -l boost_thread -l db_cxx -l ssl -l crypto -l miniupnpc -Wl,-Bdynamic -l z -l dl -l pthread
.text._ZN5boost16exception_detail10clone_implINS0_14bad_exception_EED2Ev' referenced in section.text._ZN5boost16exception_detail10clone_implINS0_14bad_exception_EED1Ev[non-virtual thunk to boost::exception_detail::clone_implboost::exception_detail::bad_exception_::~clone_impl()]' of obj/netbase.o: defined in discarded section .text._ZN5boost16exception_detail10clone_implINS0_14bad_exception_EED2Ev[_ZN5boost16exception_detail10clone_implINS0_14bad_exception_EED5Ev]' of obj/netbase.o .text._ZN5boost16exception_detail10clone_implINS0_14bad_exception_EED2Ev' referenced in section .text._ZN5boost16exception_detail10clone_implINS0_14bad_exception_EED1Ev[non-virtual thunk to boost::exception_detail::clone_impl<boost::exception_detail::bad_exception_>::~clone_impl()]' of obj/netbase.o: defined in discarded section .text._ZN5boost16exception_detail10clone_implINS0_14bad_exception_EED2Ev[ZN5boost16exception_detail10clone_implINS0_14bad_exception_EED5Ev]' of obj/netbase.o
.text._ZN5boost16exception_detail10bad_alloc_D2Ev' referenced in section .text.ZN5boost16exception_detail10bad_alloc_D1Ev[non-virtual thunk to boost::exception_detail::bad_alloc::~bad_alloc
()]' of obj/netbase.o: defined in discarded section .text._ZN5boost16exception_detail10bad_alloc_D2Ev[_ZN5boost16exception_detail10bad_alloc_D5Ev]' of obj/netbase.o .text._ZN5boost16exception_detail14bad_exception_D2Ev' referenced in section .text._ZN5boost16exception_detail14bad_exception_D1Ev[non-virtual thunk to boost::exception_detail::bad_exception_::~bad_exception_()]' of obj/netbase.o: defined in discarded section .text._ZN5boost16exception_detail14bad_exception_D2Ev[_ZN5boost16exception_detail14bad_exception_D5Ev]' of obj/netbase.o
.text._ZN5boost16exception_detail10clone_implINS0_10bad_alloc_EED2Ev' referenced in section .text._ZN5boost16exception_detail10clone_implINS0_10bad_alloc_EED1Ev[non-virtual thunk to boost::exception_detail::clone_implboost::exception_detail::bad_alloc_::~clone_impl()]' of obj/netbase.o: defined in discarded section .text._ZN5boost16exception_detail10clone_implINS0_10bad_alloc_EED2Ev[_ZN5boost16exception_detail10clone_implINS0_10bad_alloc_EED5Ev]' of obj/netbase.o .text._ZN5boost16exception_detail10clone_implINS0_10bad_alloc_EED2Ev' referenced in section .text._ZN5boost16exception_detail10clone_implINS0_10bad_alloc_EED1Ev[non-virtual thunk to boost::exception_detail::clone_impl<boost::exception_detail::bad_alloc_>::~clone_impl()]' of obj/netbase.o: defined in discarded section .text._ZN5boost16exception_detail10clone_implINS0_10bad_alloc_EED2Ev[_ZN5boost16exception_detail10clone_implINS0_10bad_alloc_EED5Ev]' of obj/netbase.o
.text._ZN5boost16exception_detail19error_info_injectorINS_21thread_resource_errorEED2Ev' referenced in section .text._ZN5boost16exception_detail19error_info_injectorINS_21thread_resource_errorEED1Ev[non-virtual thunk to boost::exception_detail::error_info_injectorboost::thread_resource_error::~error_info_injector()]' of obj/util.o: defined in discarded section.text._ZN5boost16exception_detail19error_info_injectorINS_21thread_resource_errorEED2Ev[_ZN5boost16exception_detail19error_info_injectorINS_21thread_resource_errorEED5Ev]' of obj/util.o .text._ZN5boost16exception_detail19error_info_injectorINS_10lock_errorEED2Ev' referenced in section.text._ZN5boost16exception_detail19error_info_injectorINS_10lock_errorEED1Ev[non-virtual thunk to boost::exception_detail::error_info_injectorboost::lock_error::~error_info_injector()]' of obj/util.o: defined in discarded section .text._ZN5boost16exception_detail19error_info_injectorINS_10lock_errorEED2Ev[_ZN5boost16exception_detail19error_info_injectorINS_10lock_errorEED5Ev]' of obj/util.o
.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED2Ev' referenced in section .text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED1Ev[non-virtual thunk to boost::exception_detail::clone_impl<boost::exception_detail::error_info_injectorboost::lock_error >::~clone_impl()]' of obj/util.o: defined in discarded section.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED2Ev[_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED5Ev]' of obj/util.o .text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED2Ev' referenced in section.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED1Ev[non-virtual thunk to boost::exception_detail::clone_implboost::exception_detail::error_info_injector<boost::lock_error >::~clone_impl()]' of obj/util.o: defined in discarded section .text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED2Ev[_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED5Ev]' of obj/util.o
.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED2Ev' referenced in section .text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED1Ev[non-virtual thunk to boost::exception_detail::clone_impl<boost::exception_detail::error_info_injectorboost::thread_resource_error >::~clone_impl()]' of obj/util.o: defined in discarded section.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED2Ev[_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED5Ev]' of obj/util.o .text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED2Ev' referenced in section.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED1Ev[non-virtual thunk to boost::exception_detail::clone_implboost::exception_detail::error_info_injector<boost::thread_resource_error >::~clone_impl()]' of obj/util.o: defined in discarded section .text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED2Ev[_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED5Ev]' of obj/util.o
collect2: ld returned 1 exit status
make: *** [ppcoind] Error 1

Create a new version from master

Could you please create a new tree from master ppcoin v0.6.3rc1 is pretty out of date and is showing some bitcoin message that is not on the master branch. So create a new tree with the latest update and patch from bitcoin and your optimization will be pretty amazing. Please consider this request.

Icons and Descriptions

The wallet states BTC instead of PPC and the installer icon is the bitcoin logo as well

Non-wallet transactional data from ppcoind?

Is there still no way to get transaction details for non-wallet transactions via ppcoind?

I would very much like to include peercoin in multiple ongoing projects but I'm having trouble getting transactional data from the daemon.

There is no getrawtransaction call and gettransaction only returns information for in-wallet transactions, even with txindex=1 in .conf and the index properly built.

Is anyone maintaining the peercoin code and if so, is a pull of the getrawtransaction code on the roadmap?

Also, how might current peercoin block explorers be parsing general transaction data?

Minting does not update balance amount in QT UI -- v0.4.0ppc-beta 64-bit linux

I'm afraid I don't have much more than an observation for this bug report so far. But when the v0.4.0ppc-beta client just minted a block the balances in the QT client didn't update (e.g. Stake: 0 even though there is a transaction for the minted reward in my transaction history).

Environment: v0.4.0ppc-beta 64-bit ubuntu 14.04 64bit

Expected behavior: When the peercoin client mints a block it should update the wallet balances accordingly.

Current work around: Restart the client.

start ppcoin.exe

I protect wallets by renaming wallet.dat to other name...
If wallet is missing ppcoin.exe will create a new wallet.
I need to wait while ppcoin.exe start, close it, delete the new created wallet, rename my wallet and start anew.

Can you modify...
if wallet exist { start ppcoin.exe }
else { select "Create new wallet" or "close" }

Can't send funds

Using the development version of ppcoind.
/root/ppcoin/src/ppcoind --help | grep vers
PPCoin version v0.4.0ppc-1915-g4536df1-beta

/root/ppcoin/src/ppcoind listaccounts
{
"" : 325.17000000
}

/root/ppcoin/src/ppcoind sendfrom "" PSomeaddress 100
error: {"code":-4,"message":"Insufficient funds"}

I tried sending using different options but none works.

Any ideas how to get this working?

Option to prevent a split or adjust the number of TX splits for the minted TX for which 90 days was not reached

The code is here: https://github.com/ppcoin/ppcoin/blob/master/src/wallet.cpp#L1331

This is a client-side implementation/protection, with no option to disable this behavior. A transaction that mints before 90 days of maturity is split in two for some unknown reasons... If the split doesn't occur (i.e. using a modified client) the transaction is still valid and accepted by the network.

An option that allows the user to specify the number of TXouts resulting from this split could also be a cool feature. For example, we can imagine that a user has 100,000 PPC and wants to split them in 3 everytime they mint.

An option to adjust these 90 days could also be interesting. For example, if I want my coins to split only if they can mint within 60 days of maturity, but not past 60 days.

Unlocked for minting only still allows payments

Problem:

  • Payments are allowed without password even though the wallet has been unlocked for minting only.

Step to reproduce:

  • Launch ppcoin-qt with rpc enabled in config
  • Execute ppcoind walletpassphrase 9999 true
  • Make a payment: works

Expected:

  • Ask for password again when making payment

Updates for OpenSSL

The "heartbleed" openssl vulnerability is not something that affects the Peercoin protocol or wallet security. Like Bitcoin, the only potential effect is during the use of TLS in RPC-over-SSL, and when fetching payment requests over HTTPS.

Following a "rather safe than sorry," and with the recent release of v0.4.0, it's worth patching.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.