Forum Home
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular

    [Dev] Segregated witness and BIP 102

    Feathercoin Discussion
    8
    42
    25993
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • wrapper
      wrapper Moderators last edited by wrapper

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

      AcidD 1 Reply Last reply Reply Quote 0
      • AcidD
        AcidD Moderators @wrapper last edited by

        @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

        • FTC Block Explorer + API @ https://fsight.chain.tips
        • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
        • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
        • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

        Wellenreiter 1 Reply Last reply Reply Quote 0
        • wrapper
          wrapper Moderators last edited by

          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

          1 Reply Last reply Reply Quote 0
          • Wellenreiter
            Wellenreiter Moderators @AcidD last edited by 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.

            Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
            Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

            1 Reply Last reply Reply Quote 0
            • wrapper
              wrapper Moderators last edited by 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

              1 Reply Last reply Reply Quote 0
              • lizhi
                lizhi @wrapper last edited by

                @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

                wrapper 1 Reply Last reply Reply Quote 1
                • wrapper
                  wrapper Moderators @lizhi last edited by 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.

                  B 1 Reply Last reply Reply Quote 2
                  • B
                    bsotnikow @wrapper last edited by

                    @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.

                    1 Reply Last reply Reply Quote 1
                    • wrapper
                      wrapper Moderators last edited by 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.

                      1 Reply Last reply Reply Quote 0
                      • lizhi
                        lizhi last edited by

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

                        1 Reply Last reply Reply Quote 0
                        • B
                          bsotnikow last edited by

                          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.

                          1 Reply Last reply Reply Quote 2
                          • ghostlander
                            ghostlander Regular Member last edited by

                            @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.

                            Wellenreiter 1 Reply Last reply Reply Quote 3
                            • wrapper
                              wrapper Moderators last edited by 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

                              1 Reply Last reply Reply Quote 1
                              • Wellenreiter
                                Wellenreiter Moderators @ghostlander last edited by wrapper

                                @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

                                Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
                                Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

                                ghostlander 1 Reply Last reply Reply Quote 2
                                • ghostlander
                                  ghostlander Regular Member @Wellenreiter last edited by

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

                                  1 Reply Last reply Reply Quote 2
                                  • lizhi
                                    lizhi last edited by lizhi

                                    I think 0.9.3.2 is selection of transition. It accept V2 and V4 , and create V2 only. then 0.11 create V4.
                                    last reject Version=2 blocks when 95% of the network has upgraded.

                                    https://github.com/FeatherCoin/Feathercoin/commit/1e2cc219d6ed147ff80a5b1fa2200d661a2e4c7c

                                    ghostlander 1 Reply Last reply Reply Quote 1
                                    • ghostlander
                                      ghostlander Regular Member @lizhi last edited by

                                      @lizhi If it accepts both, someone may create a v4 block and fork the network.

                                      1 Reply Last reply Reply Quote 0
                                      • wrapper
                                        wrapper Moderators last edited by

                                        @Lizhi and @ghostlander

                                        Couldn’t they both remain on v2 untill 95% network is v 0.11 it then auto forks to v4 ?

                                        Then last 5 % then just need to change over.

                                        ghostlander 1 Reply Last reply Reply Quote 0
                                        • ghostlander
                                          ghostlander Regular Member @wrapper last edited by

                                          @wrapper There is no way to know 95% of the network is v0.11 unless it produces somewhat different coin base.

                                          1 Reply Last reply Reply Quote 0
                                          • wrapper
                                            wrapper Moderators last edited by wrapper

                                            The only way is if Lizhi is intimating that version v4 and v2 could coexist (For example they are called v4 but act as v2 untill 95%)

                                            It would help as we could move onto testing and updating the other feature of 0.11 before the fork.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post