Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - puppies

Pages: 1 [2] 3
16
General Discussion / Private funding through fee backed assets
« on: December 10, 2015, 05:38:38 pm »
In response to the following quote

The 4-6 weeks to accomplish this stealth feature...does it means that basically all other works (DEX's core features) would be put in pause?

Bytemaster just made a post about the prediction market, that is available in the cli/blockchain, but not on the GUI yet.
I personally think that the Prediction Market could bring a lot more users than stealth, and I would prefer to head efforts on Prediction Market or others DEX's core feautures instead, at least for the time being.

If you've ever run a business, you know that you need a backlog of funded work to hire more people and then you hire more people to work off the backlog.  It's an endless growth cycle you try to sustain.

So, ask not how much work the current team can do.
Ask instead, how to fund a team big enough to do everything.

Get a backlog of work in the pipeline and let the entrepreneurs figure out how to get it done.

"If you fund it, they will come."

How much would it cost to build a margin trading engine similar to polos both backend and gui?

Are there any other really good ideas that you have that could be backed by a fee based asset, for which funding is the bottleneck?

Who in the community would be interested in holding one of the multisig keys to an account that issued these assets?

Who would the community like to see holding the multisig keys to an account that issued these assets?

Would you buy an asset now to fund development of a feature in exchange for a portion of the fees from that feature?


17
General Discussion / recurring payments
« on: November 19, 2015, 07:29:19 am »
What is the deal regarding recurring payments? 

This hasn't.been added while I wasn't watching has it?

I ask because I recently had to stop my recurring PayPal payment to freedominradio and was kinda hoping I could offer a recurring payment in bts rather than PayPal.

If this hasn't been done then there are probably much greater priorities.  Is this change intended as an included change, or will we need to pay through a worker proposal?

I'd like to be able to promote through fdr, but need to wait till that's ready. 


18
General Discussion / free market fee funding pool?
« on: November 18, 2015, 05:13:16 am »
I would like to propose a free market fee funding pool.

Currently if I send 100 bitUSD to someone then I am charged a fee in bitUSD.  This fee is then traded for bts in the bitUSD fee pool.  The bts is used to pay the network, and the bitUSD is given to the asset issuer.  (committee account)  The idea as I understand it, is that the committee account can sell this bitUSD for bts, and use the bts  to fund the fee pool.  The asset issuer can also set a percentage based fee on trades based on their asset and collect that percentage to help fund the fee pool.  strain on this fee pool system was mentioned as one of the reasons why we were unable to set a network percentage based fee, that would be payable to referrers. 

I think there might be a better way.  What if we allowed users to fund the fee pool at a certain rate, and then allowed them to keep the bitasset that was traded for the bts they used to fund the fee pool? 

Lets say that I am willing to fund the bitUSD fee pool for 5% above the feed price.  When someone makes a trade or transfer of bitUSD they would pay a fee in bitUSD.  that bitUSD would then be traded for my bts.  My bts would be used to pay the fee (which could be split according to the referral system) and I would receive the bitUSD that the user paid as a fee. This would incentivize the funding of fee pools, and competition for this automatic profit would drive the premium paid by the bitasset user down to a minimum.

Whats more, for assets that don't have price feeds the fee pool supporter could set a straight up conversion rate, which could act as a price discovery mechanism, and allow network set percentage based fees that were payable to referrers.  This would require a network enforced minimum trade amount (just like those imposed on centralized exchanges) 

Of course this would all require that the current fee rate is visible to end users. 

Also regardless which fee pool funding mechanism we use, we should all have the option of just paying the network fee ourselves in our own  bts.

19
General Discussion / Wow. That was a shitty day for bitshares
« on: November 03, 2015, 05:55:06 am »
Wow.  That was a shitty day for bitshares. 

Lift your head look around.  You're still alive.  If you are like me then you are a bit poorer for it.  If you are not then fuck you I don't really want to hear about it.  (just kidding feel free to gloat.  We always need reminders of how trashy people act.)

Like many of you I feel as if I was just kicked in the nuts.  over and over again.  I feel as if I live in the quiet little hamlet of BitShares, and the evil dragon Margin of Polo has lain waste to my kinsmen.  Burned many alive.  Scared many others away to live in the wastes.  Forgetting why they ever called BitShares home.  There were some just here for coin.  I wont miss them.  There were however some that understood that neither profit nor wealth could ever be completely measured in dollars nor even btc.  That attempting to measure your profit or wealth in the symbol of your enslavement only makes you more of a slave.  If any of those have been scared away they will be missed.  Even the ones I think are assholes.  The potential loss of human capital is far more concerning than that hideous to watch drop in price. 

I think its important to put shitty days behind you.  If you don't then you tend towards having a shitty now.  I would much rather have a shitty yesterday than a shitty now. 

Anyways just the thoughts a 35 year old man that answers to the forum name puppies.  I understand if that doesn't increase your confidence in my opinion. 


20
Stakeholder Proposals / dele-puppy as temporary committee member
« on: October 23, 2015, 10:36:48 pm »
In response to Bytemasters request on the 10-23 mumble I am putting myself forward as a temporary committee member candidate.  I am a current active witness and have no interest in being a committee member long term.  In the short term however there seems to be a dearth of candidates willing to navigate the cli_wallet. 

As an active witness I will abstain from any vote changing witness pay.  I reserve the right to vote to change feed publishing fees.

I believe that I am open to reason and evidence, and am willing to change my mind when presented with such.  Other than in regards to witness pay I reserve the right to change any opinion, and vote according to that opinion. 

I believe that decentralizing the committee member position is important enough to elect some temporary candidates until we can find long term solutions.  If you agree feel free to vote me in.

21
Technical Support / [python] failover script
« on: October 10, 2015, 06:47:28 pm »


Hey everybody.  I have updated and improved my failover script.  I have tested it quite a bit myself, but I don't think I have hit all the edge cases.  Further testing is appreciated. 

I am just learning how to code, and am releasing this in the hopes that it is useful to somebody until someone comes out with a better version.  I will be working on improving this script, and the quality of my programming.  I would appreciate any feedback that helps me move towards those goals.

The script keeps an eye on your witnesses missed blocks.  when you miss a block (or multiple blocks) it will switch your signing key for you.  If after switching through every key twice no blocks have been produced it will switch to a set of emergency keys.  If those keys still fail to produce blocks it will switch back.  Even if those keys do produce blocks it will still switch back after 30 or so minutes.

The idea is that you can have multiple keys running on multiple servers, and if one goes down you can automatically switch over to a new one.  If all of them go down you can switch over to a lower powered emergency device such as a home pc.  The scripts behaviour is a little odd when using strictness over 1, it still should do a reasonable job, but for best results I would use strictness = 1

If none of this makes sense please let me know.

This script requires a config.py with the following parameters.
witnessname = <the name of your witness>
publickeys = <tuple of public keys as strings> i.e. ("GPH57pBVHtJzfsZZ117e5dBfaMTJxbfzfZQRFFMVuompRQAidAEwK", "GPH75xxKG4ZeztPpnhmFch99smunUWMvDy9mB6Le497vpAA3XUXaD") must have at least 2
strictness = <the number of blocks missed before a new public key is switched to> must be set to 1 or higher.
emergencykeys = <tuple of emergency public keys as strings>  If no emergency nodes are used set emergency keys = 0.  If keys are used, must have at least two entries.  Can use same key twice if only running single emergency node

and here is the script
Code: [Select]
#!/usr/bin/env python
# -*- coding: utf-8 -*-

### You must have a config.py with the following parameters.
### witnessname = <the name of your witness>
### publickeys = <tuple of public keys as strings> i.e. ("GPH57pBVHtJzfsZZ117e5dBfaMTJxbfzfZQRFFMVuompRQAidAEwK", "GPH75xxKG4ZeztPpnhmFch99smunUWMvDy9mB6Le497vpAA3XUXaD") must have at least 2
### strictness = <the number of blocks missed before a new public key is switched to> must be set to 1 or higher.
### emergencykeys = <tuple of emergency public keys as strings>  If no emergency nodes are used set emergency keys = 0.  If keys are used, must have at least two entries.  Can use same key twice if only running single emergency node
### If all public keys fail to produce blocks after two rotations, then emergencykeys will be used.
### If all emergency keys fail to produce blocks after two rotations, then attempt will be made to switch back to primary keys
### If emegergency keys produce blocks attempt will still be made to switch back to primary keys after 30ish minutes


import sys
import json
from grapheneapi import GrapheneWebsocket, GrapheneWebsocketProtocol
import time
import config

rpc = GrapheneWebsocket("localhost", 8092, "", "")

### returns total missed blocks from witnessname
def getmissed(witnessname):
    witness = rpc.get_witness(witnessname)
    missed = witness["total_missed"]
    return missed

### work on cleaning up these preliminary variables
missed = getmissed(config.witnessname)
recentmissed = 0
witness = rpc.get_witness(config.witnessname)
lastblock = witness["last_confirmed_block_num"]
emergency = False

### switches to next public key after config.strictness missed blocks
def switch(witnessname, publickeys, missed):
    keynumber = (missed//config.strictness) % len(publickeys)
    key = publickeys[keynumber]
    rpc.update_witness(witnessname, "", key, "true")
    print("updated signing key to " + key)

### break some of this out into separate functions.
while True:
    witness = rpc.get_witness(config.witnessname)
    if lastblock < witness["last_confirmed_block_num"]:
        lastblock = witness["last_confirmed_block_num"]
        print(config.witnessname + " generated block num " + str(lastblock))
        recentmissed = 0
    elif config.emergencykeys != 0:
        if emergency == True:
            witness = rpc.get_witness(config.witnessname)
            if missed <= getmissed(config.witnessname) - config.strictness:
                missed = getmissed(config.witnessname)
                switch(config.witnessname, config.emergencykeys, missed)
                recentmissed +=1
                lastblock = witness["last_confirmed_block_num"]
                print("EMERGENCY!!! total missed = " + str(missed) + " recent missed = " + str(recentmissed))
            elif emergencyblock < block - 600:
                emergency = False
                switch(config.witnessname, config.publickeys, missed)
                recentmissed = 0
                print("attempting to switch back to primary nodes")
            elif recentmissed == len(config.emergencykeys) * 2:
                emergency = False
                switch(config.witnessname, config.publickeys, missed)
                recentmissed = 0
                print("attempting to switch back to primary nodes")
            else:
                time.sleep(3)
                info = rpc.info()
                block = info["head_block_num"]
                age = info["head_block_age"]
                participation = info["participation"]
                print(str(block) + "     " + str(age) + "     " + str(participation))
        elif recentmissed > len(config.publickeys * config.strictness * 2):
            emergency = True
            missed = getmissed(config.witnessname)
            switch(config.witnessname, config.emergencykeys, missed)
            recentmissed = 0
            lastblock = witness["last_confirmed_block_num"]
            print("all primary nodes down. switching to emergency nodes")
            emergencyblock = block
        elif missed <= getmissed(config.witnessname) - config.strictness:
            missed = getmissed(config.witnessname)
            switch(config.witnessname, config.publickeys, missed)
            recentmissed +=1
            print(config.witnessname + " missed a block.  total missed = " + str(missed) + " recent missed = " + str(recentmissed))
            lastblock = witness["last_confirmed_block_num"]
        else:
            time.sleep(3)
            info = rpc.info()
            block = info["head_block_num"]
            age = info["head_block_age"]
            participation = info["participation"]
            print(str(block) + "     " + str(age) + "     " + str(participation))

    elif missed <= getmissed(config.witnessname) - config.strictness:
        missed = getmissed(config.witnessname)
        switch(config.witnessname, config.publickeys, missed)
        recentmissed +=1
        print(config.witnessname + " missed a block.  total missed = " + str(missed) + " recent missed = " + str(recentmissed))
        lastblock = witness["last_confirmed_block_num"]
    else:
        time.sleep(3)
        info = rpc.info()
        block = info["head_block_num"]
        age = info["head_block_age"]
        participation = info["participation"]
        print(str(block) + "     " + str(age) + "     " + str(participation))


22
General Discussion / Interest is a testnet to push tps?
« on: October 05, 2015, 06:10:51 am »
I am interested in a testnet with only higher end witness nodes so we can attempt to push tps.  If anyone else is interested in seeing how far we can push the current code give me your bts public key and I will hack together a new genesis with extra core for testing.   

https://bitsharestalk.org/index.php/topic,18742.0.html

23
DAC PLAY / Please vote for dele-puppy
« on: September 07, 2015, 07:17:51 am »
Someone has gone and voted many of the init delegates back into the top 101.  Currently about 70% of the delegates are init delegates.  Meanwhile dele-puppy has been passed over. 

My delegate is up to date and set to restart producing as soon as it is voted back in.  During the time it was voted in I maintained a 99.86% up time while generating over 7k blocks. 

I have already posted this at playtalk.org but that forum is a ghost town so I am reposting here.  Please vote for dele-puppy. 

24
General Discussion / Mostly on blockchain roulette
« on: July 09, 2015, 11:31:32 pm »
The bot is working just fine, but some of the transactions were taking a little while to be included in a block.  Remember the bet is placed when your transaction is included in a block, not when you broadcast it.

Hello everyone,

I have been working on a project as a fun way to learn about programming.  I have moved it over to the BTS blockchain in the hopes of getting more attention.  It is based upon American roulette so the house edge should be about 5.3%.  maximum bet is currently 100 BTS.  There is no minimum bet.  You play by sending a transaction to the BTS account roulette-game and typing your bet in the memo.  If you send over the 100BTS max then it will be sent back to you after deducting 1BTS as a fee.  If you send an invalid bet your bet will be sent back to you after deducting a 1 BTS fee.  If you send any asset other than BTS it will not be automatically returned and you will have to contact me if you want it back.  If my bot eats your BTS, I will refund you fully. 

The betting rounds are broken up into ten block rounds.  On every block that ends in a zero the revealed secret of the delegate is used to generated a number between 1 and 7.  After that number of blocks the new revealed secret is used to generated a number between 0 and 37.  This is the spin.  each number corresponds to the number on a roulette wheel except for 37 which corresponds with 00.  Your bet is then matched to the spin result and if you win you are paid according to the odds associated with your bet.  If you do not win you are sent a transaction explaining this.  You can bet as many times as you want per round, but you are limited to one bet per transaction.

Currently available bets are:
    0, 00, or 1-36 pays out 35 to 1
    first column = (1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34) pays out 2 to 1
    second column = (2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35) pays out 2 to 1
    third column = (3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36) pays out 2 to 1
    first dozen = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) pays out 2 to 1
    second dozen = (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24) pays out 2 to 1
    third dozen = (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36) pays out 2 to 1
    odd = (1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35) pays out 1 to 1
    even = (2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36) pays out 1 to 1
    red = (1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36) pays out 1 to 1
    black = (2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35) pays out 1 to 1
    first half = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18) pays out 1 to 1
    second half = (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36) pays out 1 to 1
    row = (0, 00) pays out 17 to 1
    street 1 = (1, 2, 3) pays out 11 to 1
    street 2 = (4, 5, 6) pays out 11 to 1
    street 3 = (7, 8, 9) pays out 11 to 1
    street 4 = (10, 11, 12) pays out 11 to 1
    street 5 = (13, 14, 15) pays out 11 to 1
    street 6 = (16, 17, 18) pays out 11 to 1
    street 7 = (19, 20, 21) pays out 11 to 1
    street 8 = (22, 23, 24) pays out 11 to 1
    street 9 = (25, 26, 27) pays out 11 to 1
    street 10 = (28, 29, 30) pays out 11 to 1
    street 11 = (31, 32, 33) pays out 11 to 1
    street 12 = (34, 35, 36) pays out 11 to 1
    top line = (0, 37, 1, 2, 3) pays out 6 to 1
    six line 1 = (1, 2, 3, 4, 5, 6) pays out 5 to 1
    six line 2 = (4, 5, 6, 7, 8, 9) pays out 5 to 1
    six line 3 = (7, 8, 9, 10, 11, 12) pays out 5 to 1
    six line 4 = (10, 11, 12, 13, 14, 15) pays out 5 to 1
    six line 5 = (13, 14, 15, 16, 17, 18) pays out 5 to 1
    six line 6 = (16, 17, 18, 19, 20, 21) pays out 5 to 1
    six line 7 = (19, 20, 21, 22, 23, 24) pays out 5 to 1
    six line 8 = (22, 23, 24, 25, 26, 27) pays out 5 to 1
    six line 9 = (25, 26, 27, 28, 29, 30) pays out 5 to 1
    six line 10 = (28, 29, 30, 31, 32, 33) pays out 5 to 1
    six line 11 = (31, 32, 33, 34, 35, 36) pays out 5 to 1
   
Any input would be greatly appreciated


25
Technical Support / memo field encryption
« on: July 08, 2015, 01:14:14 am »
I am looking for some information about exactly how the memo field is encrypted.  Specifically to non titan accounts.

If I send a transaction and include a memo, could I prove that this transaction contains that specific memo without exposing my private key?

I ask because I have been playing around on the play blockchain with a roulette game https://bitsharestalk.org/index.php/topic,17381.0.html and pc has a very good question about the player being able to prove that they placed a bet and were not paid. 

26
DAC PLAY / Something fun to do with your PLS
« on: July 04, 2015, 07:45:14 pm »
Updated with new bets, odds and engine.

Play by sending your bet to play account roulette
In the memo type your bet
random seed is used to generate roulette table spin
All payouts have been boosted by 5% to reduce house edge to 0.53%
Current maximum bet = 100 PLS.
If you bet above the maximum bet, or send an unknown bet your funds will be returned after subtracting a 1PLS convenience fee


Current bets available
Code: [Select]
    0, 00, or 1-36 pays out 35 to 1
    first column = (1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34) pays out 2 to 1
    second column = (2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35) pays out 2 to 1
    third column = (3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36) pays out 2 to 1
    first dozen = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) pays out 2 to 1
    second dozen = (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24) pays out 2 to 1
    third dozen = (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36) pays out 2 to 1
    odd = (1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35) pays out 1 to 1
    even = (2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36) pays out 1 to 1
    red = (1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36) pays out 1 to 1
    black = (2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35) pays out 1 to 1
    first half = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18) pays out 1 to 1
    second half = (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36) pays out 1 to 1
    row = (0, 00) pays out 17 to 1
    street 1 = (1, 2, 3) pays out 11 to 1
    street 2 = (4, 5, 6) pays out 11 to 1
    street 3 = (7, 8, 9) pays out 11 to 1
    street 4 = (10, 11, 12) pays out 11 to 1
    street 5 = (13, 14, 15) pays out 11 to 1
    street 6 = (16, 17, 18) pays out 11 to 1
    street 7 = (19, 20, 21) pays out 11 to 1
    street 8 = (22, 23, 24) pays out 11 to 1
    street 9 = (25, 26, 27) pays out 11 to 1
    street 10 = (28, 29, 30) pays out 11 to 1
    street 11 = (31, 32, 33) pays out 11 to 1
    street 12 = (34, 35, 36) pays out 11 to 1
    top line = (0, 37, 1, 2, 3) pays out 6 to 1
    six line 1 = (1, 2, 3, 4, 5, 6) pays out 5 to 1
    six line 2 = (4, 5, 6, 7, 8, 9) pays out 5 to 1
    six line 3 = (7, 8, 9, 10, 11, 12) pays out 5 to 1
    six line 4 = (10, 11, 12, 13, 14, 15) pays out 5 to 1
    six line 5 = (13, 14, 15, 16, 17, 18) pays out 5 to 1
    six line 6 = (16, 17, 18, 19, 20, 21) pays out 5 to 1
    six line 7 = (19, 20, 21, 22, 23, 24) pays out 5 to 1
    six line 8 = (22, 23, 24, 25, 26, 27) pays out 5 to 1
    six line 9 = (25, 26, 27, 28, 29, 30) pays out 5 to 1
    six line 10 = (28, 29, 30, 31, 32, 33) pays out 5 to 1
    six line 11 = (31, 32, 33, 34, 35, 36) pays out 5 to 1


***is it really random***

The random seed from every tenth block is used to generate a number between 1 and 7.  That number is then used to select a second future block.  That second block is then used to generate the 'roulette spin'

Since switching to this form of generating the 'spin' I have logged 8973 'spins'
The results were
Code: [Select]
0 = 233
1 = 223
2 = 266
3 = 218
4 = 260
5 = 257
6 = 237
7 = 225
8 = 203
9 = 236
10 = 220
11 = 225
12 = 261
13 = 241
14 = 230
15 = 232
16 = 237
17 = 242
18 = 255
19 = 255
20 = 234
21 = 245
22 = 251
23 = 226
24 = 216
25 = 219
26 = 227
27 = 222
28 = 238
29 = 212
30 = 246
31 = 225
32 = 240
33 = 249
34 = 247
35 = 233
36 = 237
00 = 250

I am satisfied with these results.  I know it is currently a little skewed towards even results, but I don't expect that to continue.  Other groups of results have been skewed slightly towards odd.

At some point I hope to be able to move the bet matching and payout onto the blockchain as well. 

As I learn more, I may design a front end for this system as well.



playtalk thread url http://playtalk.org/index.php?topic=376.0

27
DAC PLAY / Sell me some play
« on: June 05, 2015, 05:52:31 pm »
Would someone like to sell me some play?  All my funds are vesting, and I can't really use yunbi (unless theres an english version I don't know of)  I am looking to buy about 4000 PLS, and am willing to pay 2000 BTS.  This is twice the price of PLS currently on yunbi.  Pretty easy way to make 1000 BTS if you can use yunbi efficiently.

28
General Discussion / segfault in 0.4.19
« on: October 02, 2014, 05:33:34 am »
My delegate node just ran into a seg fault and I dropped a block.  Unfortunately I was not running in gdb, and the executable was stripped, so I can't get any debug info.  I am currently rebuilding to see if I can reproduce.  Has anyone else run into any problems?

* Edit by Bytemaster
   - this issue has been fixed in the latest toolkit and DAC Sun Limited has been notified that they should merge the fix and provide an update.

29
why does
"blockchain_delegate_pay_rate": "1.34714 BTSX",
keep decreasing.  Whats the algorithm?  Haven't transactions and thus fees increased?

30
General Discussion / forks
« on: August 24, 2014, 12:38:40 am »
Anyone else having forking issues?  My seed node decided it wanted to go play on a side chain with an average of three delegates and now that I'm connected to the main swarm I'm only showing about a 90% delegate participation rate.

Pages: 1 [2] 3