Feathercoin daemon and wallet production version 0.19.1
Old daemon and wallet version 0.18.3

[Dev] Segregated witness and BIP 102


  • | Tip lizhi

    Segregated witness #7910
    https://github.com/bitcoin/bitcoin/pull/7910

    BIP 102
    https://github.com/bitcoin/bips/blob/master/bip-0102.mediawiki
    https://github.com/jgarzik/bitcoin/commits/2015_2mb_blocksize

    Increase the size of the block, the transaction confirmed faster. I think we can use those codes.


  • Regular Member | Tip ghostlander

    @lizhi What for? Most FTC blocks have no user transactions.


  • Moderators | Tip wrapper

    Although you are technically correct, “most” don’t have a transaction currently, Feathercoin (FTC) has a good level of transactions taking place. Certainly more than most other Alt-Coins. I have measured levels of up to 58 times transaction fees per day.

    Bitcoin and Litecoin have market lead in direct usage of the Alternate currency as “money”, so it seems other uses , such as contracts, Feathercoin would be much more efficient.

    In which case expanding the transactions might be needed. The disadvantage might be increase blockchain size.

    I haven’t studied the block size debate in full but - Do the blocks only expand if necessary?

    It is an advantage to include changes, sooner, where forking the coin or such changes would be more difficult at a later stage and would be seen as “reacting to usage” not thinking ahead.


  • Moderators | Tip wrapper

    I’ve done 5 days close analysis of the FTC difficulty, I’ve added a column to calculate the percentage of Feathercoin Blocks with transactions, I’ll check the other days and update the post later, but on

    31/05/2016 :
    28% of the Feathercoin (FTC) blocks had transactions.

    Update : The other 2 days showed 29 % of Blocks have transactions.


  • Moderators | Tip Wellenreiter

    @lizhi said:

    Segregated witness #7910
    https://github.com/bitcoin/bitcoin/pull/7910

    BIP 102
    https://github.com/bitcoin/bips/blob/master/bip-0102.mediawiki
    ttps://github.com/jgarzik/bitcoin/commits/2015_2mb_blocksize

    Increase the size of the block, the transaction confirmed faster. I think we can use those codes.

    Bitcoin still is at 5 minutes block rate, while feathercoin is at one block per minute. Therefor we are 5 times faster than bitcoin without changing the code. Also there are far less transactions in FTC than in BTC, so there is no urgent need to implement BIP 102.
    Let’s not blindly run and follow each Bitcoin developement and code change, but analyze if it is needed for FTC and implement only what we need. There are far more bitcoin developer than we have, so we can’t keep up with their developments anyway.
    If we try to implement all of their changes, this will go at cost of stability and quality.

    My idea is to focus on a stable block chain and code, not to implement every idea the bitcoin developer come up with.

    Currently we are working on the implementation of Protocol version 4, which is a major change including a hard fork, which will be planned carefully. We should focus on this and avoid any distraction.
    Bip 102 also is a hard fork, so we can’t implement that on the fly.


  • Moderators | Tip wrapper

    I agree that it isn’t high priority, like getting the 09.3.1 version compiling on Ubuntu LTS, is much more urgent.


  • Moderators | Tip AcidD

    @wrapper said:

    I agree that it isn’t high priority, like getting the 09.3.1 version compiling on Ubuntu LTS, is much more urgent.

    Boom! I love a challenge - Will create a VM when I get home and do this. I’ll aim to write the same style tutorial i did for Centos 7 Minimal.

    just can you confirm it’s Ubuntu 16.04 LTS ?

    D


  • Moderators | Tip wrapper

    Welleneiter is the most knowledgeable on this and he is busy, I’ve been pestering him so I can learn more about building.

    The missing builds are 15.10 and 16.04

    for versions 0.8.7.3 last release 0.9.3.1 release

    Here is the FTC Linux Binary page, showing what available :

    I started a [Dev] thread, to discus packaging.

    http://forum.feathercoin.com/topic/8057/dev-packaging-feathercoind-and-feathercoin-qt-on-linux


  • Moderators | Tip Wellenreiter

    @aciddude said:

    @wrapper said:

    I agree that it isn’t high priority, like getting the 09.3.1 version compiling on Ubuntu LTS, is much more urgent.

    Boom! I love a challenge - Will create a VM when I get home and do this. I’ll aim to write the same style tutorial i did for Centos 7 Minimal.

    just can you confirm it’s Ubuntu 16.04 LTS ?

    D
    I’m using opensuse build service, so I don’t need to set up a VM for each distribution when I build the packages.

    If you are interested in the build service send me a PM.

    Currently I get this error messages:

    CXX      rpcrawtransaction.o
    [  590s] In file included from /usr/include/boost/move/detail/type_traits.hpp:34:0,
    [  590s]                  from /usr/include/boost/move/core.hpp:54,
    [  590s]                  from /usr/include/boost/move/utility_core.hpp:29,
    [  590s]                  from /usr/include/boost/move/utility.hpp:28,
    [  590s]                  from /usr/include/boost/thread/detail/move.hpp:27,
    [  590s]                  from /usr/include/boost/thread/lock_types.hpp:11,
    [  590s]                  from /usr/include/boost/thread/pthread/mutex.hpp:16,
    [  590s]                  from /usr/include/boost/thread/mutex.hpp:16,
    [  590s]                  from allocators.h:13,
    [  590s]                  from serialize.h:9,
    [  590s]                  from bignum.h:9,
    [  590s]                  from chainparams.h:9,
    [  590s]                  from base58.h:17,
    [  590s]                  from rpcrawtransaction.cpp:6:
    [  590s] /usr/include/boost/variant/get.hpp: In instantiation of 'typename boost::add_reference<T>::type boost::strict_get(boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>&) [with U = const CScriptID&; T0 = CNoDestination; T1 = CKeyID; T2 = CScriptID; T3 = CStealthAddress; T4 = boost::detail::variant::void_; T5 = boost::detail::variant::void_; T6 = boost::detail::variant::void_; T7 = boost::detail::variant::void_; T8 = boost::detail::variant::void_; T9 = boost::detail::variant::void_; T10 = boost::detail::variant::void_; T11 = boost::detail::variant::void_; T12 = boost::detail::variant::void_; T13 = boost::detail::variant::void_; T14 = boost::detail::variant::void_; T15 = boost::detail::variant::void_; T16 = boost::detail::variant::void_; T17 = boost::detail::variant::void_; T18 = boost::detail::variant::void_; T19 = boost::detail::variant::void_; typename boost::add_reference<T>::type = const CScriptID&]':
    [  590s] /usr/include/boost/variant/get.hpp:284:25:   required from 'typename boost::add_reference<T>::type boost::get(boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>&) [with U = const CScriptID&; T0 = CNoDestination; T1 = CKeyID; T2 = CScriptID; T3 = CStealthAddress; T4 = boost::detail::variant::void_; T5 = boost::detail::variant::void_; T6 = boost::detail::variant::void_; T7 = boost::detail::variant::void_; T8 = boost::detail::variant::void_; T9 = boost::detail::variant::void_; T10 = boost::detail::variant::void_; T11 = boost::detail::variant::void_; T12 = boost::detail::variant::void_; T13 = boost::detail::variant::void_; T14 = boost::detail::variant::void_; T15 = boost::detail::variant::void_; T16 = boost::detail::variant::void_; T17 = boost::detail::variant::void_; T18 = boost::detail::variant::void_; T19 = boost::detail::variant::void_; typename boost::add_reference<T>::type = const CScriptID&]'
    [  590s] rpcrawtransaction.cpp:299:77:   required from here
    [  590s] /usr/include/boost/variant/get.hpp:178:5: error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>'
    [  590s]      BOOST_STATIC_ASSERT_MSG(
    [  590s]      ^
    

    The same code is compiling fine on Ubuntu 15.04, Debian 8 and other distributions.


  • Moderators | Tip wrapper

    Just reading about a similar problem compiling :

    I think that the problem is that you put #ifdef instead of #ifndef at the top of your header.h file

    a search for what includes boost showed - checkpoints.h

    Which is a likely area for an error as it is included code for FTC. However, I can’t see a logical error in variable definition there, yet …

    https://github.com/FeatherCoin/Feathercoin/blob/0.9.3.1/src/checkpoints.h

    Also note https://github.com/FeatherCoin/Feathercoin/blob/0.9.3.1/src/rpcprotocol.cpp

    last change was to fix compile error …

    Also noted libqt5core5a replaces libqt5core5 mentioned in master-0.8/doc/readme-qt.rst


  • | Tip lizhi

    @wrapper

    Segregated Witness is a great improvement. It is not in order to expand the blockchain size.

    Because tx_hash = double_sha256(raw_tx), When S’ value replace S value, a unique transaction may have 2 different hash (tx_hash). It is a nightmare scenario.

    The transaction is the transaction, the signature is the signature. So we need to take out the signature, put it out, and put it on the outside. signature insert into witness

    Transaction structure = TxIn + TxOut.

    Currently a total of 4 related BiP (141-144) is proposed.
    https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki
    https://github.com/bitcoin/bips/blob/master/bip-0142.mediawiki
    https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki
    https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki


  • Moderators | Tip wrapper

    @lizhi said:

    @wrapper

    Segregated Witness is a great improvement. It is not in order to expand the blockchain size.

    Cheers for that and all your great work, I am for further developments in the software. I will study up as soon as I get a chance.


  • | Tip bsotnikow

    @wrapper Is segwit on the road to smart contracts? From what I understand they need to implement segwit on BTC before they’ll be able to do smart contracts with it… . .I also for a long time didn’t see the value in smart contracts, but now I see. You can basically set up escrows right? Wherein coins can be tied up until certain requirements are met? That is a massive addition of function AND a very marketable thing towards the general public.


  • Moderators | Tip wrapper

    'Lizi & @Bostnickow – Actually that sounds great

    I will read up on it more urgently, (am still failing to compile 9.3.1 on Ubuntu 15.10)

    but our basic policy is to include such in a “Development” version, then try to get some enthusiasm to test it, we have set up test networks for specific features, it seems to me testing a smart contract feature may attract more attention…

    Some of these features are complex, or really need to be on the network to be fully tested, at worst case that need high supervision at best they are backwardly compatible.


  • | Tip lizhi

    0.9.3.2 is a bridge.It is compatible with the new blockchain version. Please upgrade client.


  • | Tip bsotnikow

    Events with ETH have changed my mind on this topic. I don’t think its a good idea to add complications like Segregated witness to the code. Keep the code as simple and secure as possible, focus on being a savings instrument and profitable for miners… It may take longer, but eventually someone will figure out how to create an encrypted bit of software that can create and manage crypto wallets. You’ll probably be able to download them free one day and set up as many smart contracts as you like with whatever crypto you like.


  • Regular Member | Tip ghostlander

    @lizhi Your patch allows to put ANY block version above 2 in new blocks. Like 102938. It defeats the purpose of block versions at all. If someone puts maliciously such a block version in a new block, we have a forked network between all existing wallets and v0.9.3.2.

    https://github.com/FeatherCoin/Feathercoin/commit/911098d4b9124ff01406729efc345a4dbbff6d68

    Don’t upgrade to v0.9.3.2 unless you’re ready for a trouble.


  • Moderators | Tip wrapper

    We’re going to test some interface changes and do some help for the new features in 0.9.3.2.

    It would be possible to make a intermediate release “0.9.3.3” with just the UI and minimum - fixes –

    Then I’ll move onto into 0.1x.x series, and transfer those in and seeing if I can add some help and sharpen the new forms further. (any assistence accepted)

    I’m assuming we can still make that branch compatible, while we create a tidy release of that.

    https://github.com/wrapperband/Feathercoin/tree/0.9.3.2/doc


  • Moderators | Tip Wellenreiter

    @ghostlander said:

    @lizhi Your patch allows to put ANY block version above 2 in new blocks. Like 102938. It defeats the purpose of block versions at all. If someone puts maliciously such a block version in a new block, we have a forked network between all existing wallets and v0.9.3.2.

    https://github.com/FeatherCoin/Feathercoin/commit/911098d4b9124ff01406729efc345a4dbbff6d68

    Don’t upgrade to v0.9.3.2 unless you’re ready for a trouble.

    @lizhi
    @ghostlamder

    Do we need to accept block version 3 in 0.9.3.2?

    It is an easy fix to accept block version 2 and 4 or 2,3.4 only


  • Regular Member | Tip ghostlander

    @Wellenreiter We can accept any block version if it’s labelled 2. Otherwise it needs a hard fork.


Log in to reply