Giter Site home page Giter Site logo

syscoin / syscoin1 Goto Github PK

View Code? Open in Web Editor NEW
31.0 35.0 28.0 52.03 MB

Syscoin is a crypto currency that is universally merge-mineable and offers a unique variety of services including decentralized identities, marketplaces and certificate management, escrow, asset token issuance platform capabilities directly on the blockchain.

Home Page: https://www.syscoin.org

License: MIT License

Python 2.56% Makefile 0.54% Shell 0.45% NSIS 0.18% C++ 91.37% C 2.17% HTML 1.48% CSS 0.03% Objective-C 0.03% Objective-C++ 0.17% QMake 0.49% Roff 0.53%
cryptocurrency blockchain blockchain-technology assets decentralized decentralized-applications marketplaces identity iot syscoin minable ownership

syscoin1's Introduction

Syscoin integration/staging tree

Join the chat at https://gitter.im/syscoin/syscoin

https://www.syscoin.org

Copyright (c) 2009-2014 Bitcoin Developers Copyright (c) 2013-2018 Syscoin Developers

What is Syscoin?

Syscoin is a merge-minable SHA256 coin which provides an array of useful services which leverage the bitcoin protocol and blockchain technology.

  • 1 minute block targets, diff retarget each block using KGW(7/98)
  • Flexible rewards schedule paying 25% to miners and 75% to masternodes
  • 888 million total coins
  • SHA256 Proof of Work
  • Fast-response KGW difficulty adjustment algorithm
  • Merge mineable with any PoW coin
  • Minable either exclusively or via merge-mining
  • Network service fees burned

Services include:

  • Decentralized Identity reservation, ownership & exchange
  • Digital certificate storage, ownership & exchange
  • Distributed marketplate & exchange
  • Digital Services Provider marketplace & platform
  • Digital Asset Creation and Management
  • Decentralized Escrow service

For more information, as well as an immediately useable, binary version of the Syscoin client sofware, see https://www.syscoin.org.

License

Syscoin is released under the terms of the MIT license. See COPYING for more information or see http://opensource.org/licenses/MIT.

Development process

Developers work in their own trees, then submit pull requests when they think their feature or bug fix is ready.

If it is a simple/trivial/non-controversial change, then one of the Syscoin development team members simply pulls it.

If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion (if they haven't already) on the mailing list.

The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if the code doesn't match the project's coding conventions (see doc/coding.txt) or are controversial.

The master branch is regularly built and tested, but is not guaranteed to be completely stable. Tags are created regularly to indicate new official, stable release versions of Syscoin.

Testing

Testing and code review is the bottleneck for development; we get more pull requests than we can review and test. Please be patient and help out, and remember this is a security-critical project where any mistake might cost people lots of money.

Automated Testing

Developers are strongly encouraged to write unit tests for new code, and to submit new unit tests for old code.

Unit tests for the core code are in src/test/. To compile and run them:

make; cd src/test; ./test_syscoin;

syscoin1's People

Contributors

bubbafat avatar coderboo avatar dwasyluk avatar gitter-badger avatar hgt5 avatar jonn4y avatar jyap808 avatar sebastien1234 avatar sidhujag avatar snipsnoop avatar sschepis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

syscoin1's Issues

Show most recent items on "Search" initial entry OR New "Browse" tab

To improve the marketplace user experience we could pre-populate the search screen marketplace listings from the last month in reverse-chron order. When the user searches the search experience is the same as-is today, the only change here is the initial entry experience into the search screen. Searching for "" or " " should also lead them back to this latest items result.

Alternatively/even better- this could be its own tab (Browse). We could limit complexity of the screen by always making it show items listed within the last month in reverse chron order so as not to have to deal with pagination in QT.

Suggest to review main/wallet locking mechanism in services

As per syscoin/syscoin@5bb556a

Because aliases and addresses are now analogous in the client wallet, anywhere where an address is parsed from a string and checked for validity it also checks to see if the address is a valid alias. Thus the routine to check for valid aliases locks the wallet. Sometimes in these routines somewhere on the UI it has already locked the wallet for reading and thus causes a deadlock because it locks without checking to see if its already locked.

I use TRY_LOCK instead of LOCK because it checks to ensure that the critical section is not already locked before locking to avoid deadlock situations. Because of this it will lock in the UI routine but then not lock when checking for alias addresses... however the RPC call to check alias stuff may succeed in locking the wallet because it doesn't lock outside of the scope of the RPC call.

The downside I see to this is if the wallet is LOCKED and then the service routine is called it will allow you to access the wallet which was already locked in another routine... so maybe it prevents data trampling as it was intended to do so. A safer way to do this is any routine READING information should always succeed by using TRY_LOCK... and any routine that needs to write to the wallet should use a TRY_LOCK check and exit the function prematurely (through an exception) if it can't lock, because it assumes the wallet is being written to so it shouldn't be allowed to make the request.

Sold Items on market in Transactions

Incoming Transactions from a sale at the marketplace should be somehow clearly noticeable as such.
Right now i receive a tx without any info if its send "just for fun" or via buy of a good and need to check offerinfo to see if one item was sold.
The info should be visible via listtransactions in 2 values, "OfferIdPayment" and "AmountGoodsBought"

(Submitted by JohnDorien1)

Change message on indicating delay with offer appearing

Marketplace/selling(not sure about the other tabs):

When creating an offer, it appears right away in the "selling" tab, so the message "offer operations (create, update) take 1 confirmation to appear in this table. Either need to remove the message or not say "this table" and say instead ""offer operations (create, update) take 1 confirmation to be searchable on the Marketplace"

Remove sendtoalias from console

It pulls the address field instead of the value field from an alias, and ends up sending the sys to the incorrect destination. Dan mentioned its deprecated for being able to use aliases in sendtoaddress anyways so could be disabled/removed.

Notes portion grey as if you cannot write a comment

Marketplace/Purchase Offer/Notes:

The notes section when making a new offer does not have a white background in the field, making it appear as if you cannot write in that section. Also font of text is blue in comparison to the rest of the fields(text is in black), not sure if that's intentional.

screenshot 2015-10-03 02 00 57

Certificate data field does not appear to accept all ASCII characters or interprets them differently

  1. Renamed a JPG file to TXT file to get it's data via edit
    screenshot 2015-10-09 01 04 22
  2. Copied TXT content to Certificate data and created the certificate dolphin.jpg
  3. Waited for certificate to validate
  4. Edited Certificate to see the content of the data
    screenshot 2015-10-09 01 06 23
  5. Noticed some characters are not transferring properly comparing both documents
  6. Tried copying the data from the certificate to a TXT file and renaming it a JPG, file is not readable.

Data service help and functions are not analagous to aliases

The alias and data commands should be analagous with the exception of data having a filename property and holding more data. Right now now only are there missing commands in the data subset, but some data commands refer to aliases and aren't even documented in help. ie: datahistory

OUTPUT:
20:25:24
datahistory

20:25:24
aliashistory
List all stored values of an alias.
(code -1)

Deterministic address populated in address book when "address" field is left blank on add new address operation

If while adding a new address to your local address book you omit the "address" field in the form which contains "label" and "address" the QT wallet will generate an address deterministically resulting in "SQaRyNW6VdKHQnk4sREVBFNX6SdN8q5T4b".

The QT wallet should not allow the addition of a new address when the "address" field is still blank.

Steps to recreate:

  1. Go to address book
  2. Click "create new address"
  3. Leave both fields blank and click "Ok" notice new address SQaRyNW6VdKHQnk4sREVBFNX6SdN8q5T4b is added to address book in background
  4. Close and reopen "add new address" and click "Ok" again, note the error saying "The entered address "" is already in the address book." because the generated address is always the same.
  5. Delete the generated address and try adding a blank address again and the same address [SQaR] is added the address book.

Only display transactions I "own" or have "accepted" in offerinfo

After several people have accepted an offer via offeraccept+offerpay. In offerinfo if I am looking at an offer NOT owned by me (my wallet) which I have performed offeraccept+offerpay against I should only be able to see the "accepts" performed by me / my wallet.

If I perform "offerinfo" and I am looking at the offer from the wallet which OWNS the offer, ALL accepts are displayed.

Certificate data field shows wrong info

When searching a certificate that you do not own, the "DATA" field does not show the actual data of the certificate but instead shows the same info as the "Title" field.
screenshot 2015-10-17 23 07 05

No option for "certificatedata"

Certificates/New Certificate/New Cert:

When creating a certificate, there needs to be a section to be able to upload/enter to provide the information certificatedata; creating a certificate works but the only field to enter is the "title" option.

screenshot 2015-10-03 02 32 20

QT-Wallet. Unlock wallet menu option

There should be an temporary unlock facility in the UI under Settings / Unlock Wallet
This should bring up a screen with default settings for how long the wallet should be unlocked and passphrase input.

Marketplace GUI suggestion: Add pictures

It would be really beneficial for us to be able to to show an image of the item being sold.

Perhaps there is a way to program the GUI that if you put a URL (IE: IMGUR) of the image on the first line of the description, it would show that image.

Finish sendtoalias implementation

sendtoalias is implemented in the code and is exposed via RPC but doesn't actually check the value behind the alias and then actually send. This is a value add for many users

certnew fails the SECOND TIME is called for a particular Cert. Issuer GUID on QT RPC console, WORKS ON syscoind.

On QT RPC console:

certissuernew UB blah:
[
"17aca090d4f5b5035cebb7d73c005bffeab99936e5c64848460b0c6f01c5785f",
"291cabf006dc73e000"
]

certissueractivate 291cabf006dc73e000:
75ccc4a7d245658f502b2954c5be2fe5b1d2b58b91eaad96fdfce7fa9c889a91

After both txs are confirmed:

certnew 291cabf006dc73e000 TB1MYx8wvKzvYE1ERbyDmSCMWdHySwKna8 fromUB-01 blah:
[
"7412fc420436c053eb55f33a8b07f94607335249ec25767a785d67848d0134f0",
"41416775c0f3d1f900"
]

After previous certnew tx is confirmed:

certnew 291cabf006dc73e000 TB1MYx8wvKzvYE1ERbyDmSCMWdHySwKna8 fromUB-02 blah
there are pending operations on that certificate issuer (code -1)

The error is consistent with every different Cert. Issuers I tried. The SECOND certnew op for a given Cert. Issuer always outputs that error. On syscoind IT WORKS:

./syscoind certnew 291cabf006dc73e000 TB1MYx8wvKzvYE1ERbyDmSCMWdHySwKna8 fromUB-02 blah
[
"2f60de995dd96958edd393e21f294971e97fb313e9ddc35654c2428d7fcfd966",
"c6f76cad256a285c"
]

Unable to purchase offer, throws error on lookup

After creating an offer via console, searching the guid under "marketplace" returns the following error: "There was an exception trying to locate this offer, please check the offer ID and that it has been confirmed by the blockchain: value is type str, expected real"

GUID example:

acdbf7a23526be74
27a920efd65f9af300

Description portion grey as if you cannot write a comment

Marketplace/My Offers/New offer/Description

The description section when making a new offer does not have a white background in the field, making it appear as if you cannot write in that section. Also font of text is blue in comparison to the rest of the fields(text is in black), not sure if that's intentional.

screenshot 2015-10-03 00 21 30

Create Currency Drop-Down menu for New offer or Write available currencies

Marketplace/My Offers/New Offer/Currency:

Option 1(Ideal). Instead of writing a value under "currency", a drop down menu should be provided with the available currencies to select.

Option 2: Enter a note underneath the currency input field that indicates a list of the available currencies.

Option 1 is ideal for ease of use, less text instructions to follow, and there should also be a disclaimer under currency (next issue coming up).
screenshot 2015-10-03 00 55 29

Add callout to Sold/My Purchases tab

In the marketplace tab under the "Sold" and "My Purchases" sub tabs there should be some instructions to the user indicating that they can see the pay message / more info by right clicking. Suggested text:

Sold:
"These are offers you have sold to others. Right click on an offer for more info including buyer message, quantity, date, etc."

My Purchases:
"These are offers you have purchased. Right click on an offer to view more info such as the message you sent to the seller, quantity, date, etc."

Fraction of a unit appears as 0

Marketplace/All tabs:

After creating an offer for less that a unit of a currency, IE: $0.50 , 0.01 BTC, the price appears as 0; decimals are not taken into account which would reduce it's effectiveness as a micro-payments platform.
screenshot 2015-10-08 22 23 06

Odd "send" transaction included when daemon receives SYS shown in listtransactions

When sending funds to the 0.1.5.1 syscoind daemon, the receive transaction which should only produce a single output entry such as:
{
"account" : "",
"address" : "SUfqMrwhCjU9wTK2ijUQxcTFNwDeV6v8wu",
"category" : "receive",
"amount" : 10.00000000,
"confirmations" : 2,
"blockhash" : "4b05457784388dc70cdfa782c7d30c74b0907473c43ba7feacb71817750bcb5f",
"blockindex" : 1,
"blocktime" : 1420517949,
"txid" : "83d7841fdf5bdcced5a668f83e09f328e8881eea27dc01d8f54b971b849fd9d7",
"time" : 1420517883,
"data" : "",
"timereceived" : 1420517883
}

Instead it includes an additional 0 send to a blank address, full output below with odd transaction bolded. This issue does not seem to occur when listtransactions is called via QT using a wallet created with an older version of Syscoin (<0.1.5).

{
"account" : "",
"address" : "SUfqMrwhCjU9wTK2ijUQxcTFNwDeV6v8wu",
"category" : "receive",
"amount" : 10.00000000,
"confirmations" : 2,
"blockhash" : "4b05457784388dc70cdfa782c7d30c74b0907473c43ba7feacb71817750bcb5f",
"blockindex" : 1,
"blocktime" : 1420517949,
"txid" : "83d7841fdf5bdcced5a668f83e09f328e8881eea27dc01d8f54b971b849fd9d7",
"time" : 1420517883,
"data" : "",
"timereceived" : 1420517883
},
{
"account" : "",
"address" : "",
"category" : "send",
"amount" : 0.00000000,
"fee" : 0.00000000,
"confirmations" : 2,
"blockhash" : "4b05457784388dc70cdfa782c7d30c74b0907473c43ba7feacb71817750bcb5f",
"blockindex" : 1,
"blocktime" : 1420517949,
"txid" : "83d7841fdf5bdcced5a668f83e09f328e8881eea27dc01d8f54b971b849fd9d7",
"time" : 1420517883,
"data" : "",
"timereceived" : 1420517883
}

Marketplace currency field requires a disclaimer

Marketplace/My Offers/New Offer/Currency

There needs to be a disclaimer in red under the currency input field indicating:

"You will receive a payment in Syscoin equivalent to the market-value of the currency you have selected"

screenshot 2015-10-03 00 55 29

Marketplace "accept and pay for offer" Syscoin spelling

Under Marketplace tab "accept and pay for offer". Text indicates "accept and purchase this offer, Syscoins will be used to complete the transaction". Syscoin should not have an 's'. Should also probably remove the "Accept and Purchase" and just change to "Purchase".

New suggested text: "Purchase an offer. Syscoin will be used from your balance to complete the transaction"

Offer name is getting converted to unicode in the output of some RPC commands

In offerhistory (outside wallet) and in offerlist (inside of the wallet after purchasing an item) - the names of offers seem to be getting converted to unicode. For example offer guid '58af8423990635b200' when called:
offerinfo 58af8423990635b200:
{
"id" : "58af8423990635b200",
"txid" : "ea502f7e23c5a00d5b9bda48b974674c4c07d53dae8cf23a8fcfb232f23829eb",
"address" : "STF1RLHVs11Tt3pNHNto5521BshLfLpWu5",
"expires_in" : 3717508,
"payment_address" : "STjQBuS7mrpxkFDPjzWXJQ1sPmTD6ZDVuC",
"category" : "Test",
"title" : "SaffronCoin",
"quantity" : "0",
"price" : 20.00000000,
"fee" : 88.00000000,
"description" : "",
"accepts" : [
{
"id" : "56f2c37f605ca01f",
"txid" : "ea502f7e23c5a00d5b9bda48b974674c4c07d53dae8cf23a8fcfb232f23829eb",
"height" : "4489",
"time" : "1408522133",
"quantity" : "1",
"price" : 20.00000000,
"paid" : "false"
}
]
}
BUT when calling offerhistory 58af8423990635b200:
[
{
"offer" : "58af8423990635b200",
"value" : "\u00AE\u009FR\u0088ybV\u00A3\u00C4\u0016_\u00F9\u00BE\u0095{\u00E9\u00FB\u00D7\u000B\u00C7",
"txid" : "ea502f7e23c5a00d5b9bda48b974674c4c07d53dae8cf23a8fcfb232f23829eb",
"address" : "STF1RLHVs11Tt3pNHNto5521BshLfLpWu5",
"expires_in" : 3717506
}
]
NOTICE THE UNICODE "value" instead of "Saffron". This also happens on offerlist for items the user has purchased.

Change wording of waiting 1 confirmation

under "my certificates", "Marketplace", and "aliases" it indicates that it will take 1 confirmation to appear on the table. "1 confirmation" is not lamens terms, suggest it indicates a time, aliases, IE: "2 to 5 minutes".

Use certs to send encrypted messages

In an effort to use Shade as an all-in-one service to buy and sell items, it would be beneficial to include an encrypted certificate transfer function to send and receive messages regarding a sale(pre-sale, while making the pucharse to mask address info, post-sale)

Total amount charged does not include fee

Marketplace/Purchase Offer/Accept Offer:

"Are you sure you want to purchase XXX? You will be charged YYY SYS"

The YYY Amount indicated in the line above does not include the fee.

screenshot 2015-10-03 12 44 41

Prevent creation of offers with non-existent pegging currency

When creating an offer pegging currency is currently a free-form text input and will accept values not specified in the pegging alias. Was able to create offer with currency "ASD" and not sure how this will be handled by the pegging design as it is not specified in the peg alias (as of offer creation):

screen shot 2015-09-14 at 11 51 35 am

I suggest we offer a combo-box of supported currencies in the create-offer dialog rather than a freeform input and make sure that we enforce only supported-pegging currencies at the RPC level too so that people making API calls cannot create invalid offers.

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.