Error making request to UNKNOWN/Default: JSON-RPC Error: Type: Server errorCode: -32000Message:
Bad status code returned: ā500ā. result body:
'{āresultā:null,āerrorā:{ācodeā:-26,āmessageā:ā64:
bad-txns-too-many-sigopsā},āidā:0}
'.
I got the same issue (bad-txns-too-many-sigops) with the current counterparty wallet when trying to use a 2of3 MultiSig.
The PR is merged but is it also deployed to the https://wallet.counterwallet.io?
Is MultiSig support stable or considered experimental? Issuing a token from a MS address and then not being able to spend it would be a disaster for an issuance of an asset.
If MS is not supported well anymore, how about Trezor support?
I think MultiSig wasnāt considered experimental, it was initially released last year, but as I recall it was limited in some ways.
In any case, to answer your question, as you can see this fix was merged into develop, not yet in master, so some additional QA would be necessary before it can be deployed and then the developers would have to agree to deploy it.
Although anyone could pull develop code and install it, I think itās quite complex for a casual user.
In terms of h/w wallets, I know thereās some interaction going on with Ledger and the guys from Indiesquare Wallet know more about that. It may be a few weeks before there are further news, though. I think at this stage they need some additional information from Ledger and then they can try to support Ledger.
it is possible - but probably not worth it - to use Bitcoin Core and counterparty-client to craft multisig transactions manually, but itās a ton of steps (maybe 10) in the CLI. If youāre interested in tinkering with that you could try, or when I find time I could post a tutorial similar to this CLI how-to.
One other question:
I tried to use Armory offline addresses but get errors when trying to spend or issue an asset.
Maybe it is because I added the address before I did a tx on Armory (to reveal the pubkey).
Is it possible to issue an asset directly from a offline Armory address?
I need a secure way to issue (unlimited) tokens. A normal address does not give the level of security I want to get.
So either MS, offline Armory or hardware wallet would be required.
To only transfer assets to offline armory is not enough, but to transfer ownership if the issuance is not supported might be another viable option. Does that work?
Is it possible to issue an asset directly from a offline Armory address?
I think it is (I assume itās your address, which you have control of) - basically you need to create a Counterparty transaction first (which you can do in counterparty-client on your computer, assuming you haveBitcoin Core addrindex and counterparty-server, or Federated Node with counterparty (which includes Bitcoin Core, counterparty-server and counterparty-client)). The nice thing about Federated Node is it runs out of Docker with persistent volumes on the host, so you can install it easily and itās configured on the fly. Then let it run for 2-3 days until the blockchain and counterparty DB are downloaded (http://counterparty.io/docs/federated_node/ has the documentation and instructions).
About creating tx outside of CW, take a look at this:
If you know some JSON, you could use the API, but if youāre more comfortable with the CLI youād just use the issuance action.
Itād spit out the same raw unsigned transaction as in the how-to I linked in this comment, but instead for send itād be for issuance. Then youād sign and broadcast that raw transaction with Armory.
If you want to decode the raw transaction to see whatās in it before you broadcast, you can do it out-of-band using another system (e.g. the public development server of CoinDaddy).
To only transfer assets to offline armory is not enough, but to transfer ownership if the issuance is not supported might be another viable option. Does that work?
Yes, you can use --transfer-destination after the asset has been issued (also use --unconfirmed if you havenāt waited for 6 confirmations).
$ counterparty-client issuance --help
usage: counterparty-client issuance [-h] --source SOURCE
[--transfer-destination TRANSFER_DESTINATION]
[--quantity QUANTITY] --asset ASSET
[--divisible] --description DESCRIPTION
[--fee FEE]
optional arguments:
-h, --help show this help message and exit
--source SOURCE the source address
--transfer-destination TRANSFER_DESTINATION
for transfer of ownership of asset issuance rights
I think you canāt issue 0 quantity, but thatās an interesting question so letās try:
:~$ /usr/local/bin/counterparty-client --unconfirmed --config=/home/user/.config/counterparty/client.testnet.conf issuance --source n4D7ndiC4yLZxhAf726uMHXC914sEuUAcg --quantity 0 --asset ZEROQTY --description "test for 0 quantity issuance"
[2016-11-01 22:11:01][INFO] Running v1.1.2 of counterparty-client.
[2016-11-01 22:11:02][INFO] Transaction (unsigned): 0100000001789131f77fa4197014a7d616e543e24d33cb43bb246ec2f78eaabc337cdbf18d010000001976a914f8eb547223b286af4c069845bab650951de0ba8988acffffffff020000000000000000456a43ef337fb72f7e0914e5dd209539337347297a11169a8bbacd8661c5379215dc76e20f0e5eec9e426a75fa97e5cdde8c7e4fc2a9a13cf83fe851682205f7aabe2e27fa37bb423100000000001976a914f8eb547223b286af4c069845bab650951de0ba8988ac00000000
Sign and broadcast? (y/N) y
[2016-11-01 22:11:04][INFO] Transaction (signed): 0100000001789131f77fa4197014a7d616e543e24d33cb43bb246ec2f78eaabc337cdbf18d010000006b483045022100f996f54277e1d981d1e8af99dfb536cebf3e138aeff57d77b1fa146f11d329a202202e7bae59bf7f52378d174ccbb012f8db3379328b4a5cd9e192dfaee12acac53301210265f9763ea8f857571a003a9c7abddc9875a3dd921dbdb15c1659944869f945cdffffffff020000000000000000456a43ef337fb72f7e0914e5dd209539337347297a11169a8bbacd8661c5379215dc76e20f0e5eec9e426a75fa97e5cdde8c7e4fc2a9a13cf83fe851682205f7aabe2e27fa37bb423100000000001976a914f8eb547223b286af4c069845bab650951de0ba8988ac00000000
[2016-11-01 22:11:04][INFO] Hash of transaction (broadcasted): 2b3f4a924fe0974781ea6e094b15aec73d2f7b561796de2a50804d4b5a64802d
Apparently it works. I havenāt waited so I canāt see it yet, but I suggest you try on testnet first and then check the entire procedure. Thereās an explorer here - https://testnet.counterpartychain.io/issuances - but you can also see in your own client using the balance or wallet command.
Note that the testnet is quirky and can take a long time for tx to get confirmed because people are abusing testnet quite a lot.
I was going to say if you canāt issue the quantity of zero then you would need to both transfer the ownership of the asset as well as all issued assets, but if itās possible (it seems it is) you just need to issue the asset and transfer it to another address.
Pay attention to divisible/indivisible! Some people discovered that distinction too late (after the launch).
If itās very important to you Iād also suggest to have a backup of the private key or other method stored someplace safe as per usual bitcoin safety best practices.
Iāve been trying to look into this further in free time, it appears that bad-txns-too-many-sigops happens when one of addresses used to create the multisig address tries to send funds to the multisig address.
On the bitcoin (underlying) side hereās what the error means:
// Check that the transaction doesn't have an excessive number of
// sigops, making it impossible to mine. Since the coinbase transaction
// itself can contain sigops MAX_STANDARD_TX_SIGOPS is less than
// MAX_BLOCK_SIGOPS; we still consider this an invalid rather than
// merely non-standard transaction.
Apparently (the link to Github in earlier comments) itās already fixed, but not yet in āproductionā Counterwallet, itās in develop (aka testing version).
But even now I can use multisig just fine if I use addresses that arenāt in the multisig (say I have multisig thatās 2-of-2 and then I use a 3rd address in Counterwallet to send to the multisig address - no issue with that).
I created few multisig transactions in both the CLI and Counterwallet today, e.g. https://testnet.counterpartychain.io/address/2_mxuskkUxSRwTU9ddR86Z2GT1poyq2JEVnY_mzJAEHoho8ddcRoByPRnpHRLnW5r4D2UmN_2
But I need to do some additional work before I document the exact steps.