Giter Club home page Giter Club logo

sips's Introduction

Signum Improvement Proposals (SIPs)

Signum Improvement Proposals (SIPs) describe standards for the Signum platform, including core protocol specifications, client APIs, and contract standards.

Before you initiate a pull request, please read the SIP-Basics process document. There is a template SIP here.

If you use your email address, that address must be the one publicly shown on your GitHub profile.

Project Goal

The Signum Improvement Proposals repository exists as a place to share concrete proposals with potential users of the proposal and the Signum community at large.

SIP status terms

  • Idea - An idea that is pre-draft. This is not tracked within the SIP Repository.
  • Draft - The first formally tracked stage of an SIP in development.
  • Review - An SIP Author marks an SIP as ready for and requesting Peer Review.
  • Last Call - This is the final review window for an SIP before moving to FINAL. An SIP editor will assign Last Call status and set a review end date (last-call-deadline), typically 14 days later. If this period results in necessary normative changes it will revert the SIP to Review.
  • Final - This SIP represents the final standard. A Final SIP exists in a state of finality and should only be updated to correct errata and add non-normative clarifications.
  • Stagnant - Any SIP in Draft or Review if inactive for a period of 6 months or greater is moved to Stagnant. A SIP may be resurrected from this state by Authors or SIP Editors through moving it back to Draft.
  • Withdrawn - The SIP Author(s) have withdrawn the proposed SIP. This state has finality and can no longer be resurrected using this SIP number. If the idea is pursued at later date it is considered a new proposal.
  • Living - A special status for SIPs that are designed to be continually updated and not reach a state of finality. This includes most notably SIP-Basics.

SIP Types

SIPs are separated into a number of types:

Standard Track

Core

Improvements requiring a consensus fork

Interface

Includes improvements around client API/RPC specifications and standards, and also certain language-level standards like method names and contract ABIs.

SRC

Application-level standards and conventions, including contract standards such as smart contracts

Informational

Describes a Signum design issue, or provides general guidelines or information to the Signum community, but does not propose a new feature. Informational SIPs do not necessarily represent Signum community consensus or a recommendation, so users and implementers are free to ignore Informational SIPs or follow their advice.

Signum Improvement Proposals

SIP Type Category Title Status Implemented
Basic Informational - SIP Purpose and Guidelines Living
1 Standard Interface Dynamic BRS Node Capabilities Final yes
2 Standard Core Quadruple Block Size Final yes
3 Standard Core Variable Slot-based Fees Final yes
4 Standard Core Multi-Out Transactions Final yes
5 Standard Core PoC2 Final yes
6 Standard Interface Unconfirmed Tx Queue Optimizations Final yes
7 Standard Interface Differential Unconfirmed Tx Propagation Final yes
8 Informational - Define Tx and Balance "Dust" Stagnant no
9 Informational - To-All Transactions Stagnant no
10 Standard Core Anchor Real-World Data in Blockchain Stagnant no
11 Standard Core Tethered Assets Stagnant no
12 Informational - SFS Stagnant no
13 Standard Interface Suggested Transaction Fees Final yes
14 Standard Interface Signum Actions through Deeplink QR-codes Final yes
15 Standard Core RWFDS-enabled FEE_QUANT introspection and adjustment Draft no
16 Informational - PoC2.X16 - A New Optimized Plot File Format Final yes
17 Standard Interface Differential UT Propagation in push & pull Final yes
18 Informational - Cross-Platform Wallet UI Final yes
19 Standard Interface Incoming Multi-Out Tracking Final yes
20 Standard Core Updated AT fees Final yes
21 Standard Core Adjustment for Asset-Issuance fee Final yes
22 Standard SRC Deep Link Specification Final yes
23 Standard Core Enforce slot fees Final yes
24 Standard Core New deadline algorithm based on a logarithm transformation Final yes
25 Standard Core Minor Network Changes Final yes
26 Standard Interface Extended Reed Solomon Address Format Final yes
27 Standard Core Proof of Commitment (PoC+) consensus Final yes
28 Standard Core Updated AT max steps and AT API Final yes
29 Standard Core Mininum mining incentives Final yes
30 Standard Core Green Contracts Final yes
31 Standard Core New fee framwork Final yes
32 Standard Core PoC+ polishing Final yes
33 Standard Core Smart Tokens Final yes
34 Standard Core Round minimum fee to 2 digits Final yes
35 Standard Core Cashback Final yes
36 Standard Core Distribution of node-related fees (smart contract and similar) Final yes
37 Standard Core General smart contract upgrade Final yes
38 Standard Core Map support for smart contracts Final yes
39 Standard Core Smart token support for smart contracts Final yes
40 Standard SRC Signum NFT specifications Final yes
41 Standard Core Smart Tokens Distribution Changes Final yes
42 Standard Core Subscription behaviour enhancement Final no
43 Standard Core Introduce Smart Token Owner Final yes
44 Standard SRC Descriptor Final yes
45 Standard SRC Staking Contracts Final yes
46 Standard SRC Secure solo mining setup Final yes
47 Standard SRC URI Resolution (SNS) Review no
48 Standard Core Modernize the Alias frameworks Final yes
49 Standard SRC Liquidity Pool Contracts Review yes
50 Standard SRC WebSocket API Review yes

sips's People

Contributors

blankey1337 avatar brabantian avatar curbshifter avatar deleterium avatar frankthetank72 avatar harryjph avatar jjos2372 avatar nixops avatar ohager avatar paulpoco avatar rico666 avatar shefass avatar umbrellacorp03 avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

sips's Issues

SRC44 - Update the `rule` column displayed in the `alias/al` field

As the modernization of the alias framework will allow STLDs, is necessary to make update on the specifications table:
https://github.com/signum-network/SIPs/blob/master/SIP/sip-44.md#specification

As we can appreciate in the alias field, the rule column shows an outdated one, it should be a regex expression that support STLDs
image

Testing the expression
image

Solution
The regex expression can be updated to the following:

^(\w+)(?:\.(\w+))?$

Testing the expression
image

Additional context
According to devina.io redos-checker
It states that the statement is safe
image

Update SIP-39

Current changes were already made but they are not included in SIP:

Add extended API:
GET_CURRENT_BALANCE: gets the asset quantity for the asset id in B2 (or SIGNA if B2==0)
GET_TYPE_FOR_TX_IN_A = 0x0305: document the getType values (maybe part of SIP37?)

Add new API
GET_ASSET_CIRCULATING = 0x040f; // EXT_FUN_RET total circulating supply of tokens of asset ID in B2

Fearure Request NFT: add tokens and SIGNA flow to owner

Note: I do not know how to format for SIPS.

Request NFT: add tokens and SIGNA flow to owner.

  1. During the NFT portal screen to add your graphic
    a) connected XT wallet would know what existing tokens the account has
    b) a drop down to show what tokens are selectable
    c) a box for how many tokens to include with NFT minting
  2. Have code for the Minted NFT that when SIGNA lands in the smart contract address of the NFT that the new SIGNA gets sent to owner of the NFT.

This would be to take an existing token and include it with a unique NFT graphic that says how many tokens are included. And when the token sends out dividends then the NFT smart contract passes the received SIGNA to the NFT owner's SIGNA address.

Not sure about royalties or platform fees.

Proposal: Show description and interval of canceled subscriptions

As a subscription platform, we should also consider showing the description and interval of expired/cancelled subscriptions
The current way to fetch expired/canceled subscriptions is by fetching the transactions with type=21 and subtype=4

As you can see on the response payload, the attachment property. description and interval is missing.

{
      "type": 21,
      "subtype": 4,
      "timestamp": 278363698,
      "deadline": 1440,
      "senderPublicKey": "7158e2e1170f9a3e1799ba4069ab55fac3d2242db5c0a08faf91c8b7cac3cb1f",
      "amountNQT": "0",
      "feeNQT": "2000000",
      "signature": "b3db293e1fe637feda63ad9229cb3d6fbfa3afb4b6f104dd2b1c90e0d093130378d8acc6f7add947cebbc669d24ffbd700909f506376529b1cc117ebeb0e1e7f",
      "signatureHash": "d5cc652417775a8ff35a9b9845b1b389eefeb9012684e2cc297c7a32cebb5a24",
      "fullHash": "db68ec363e0b6e2af925056151ae37da50c2a0d843652730dd035ead5c9dc56d",
      "transaction": "3057393558868486363",
      "attachment": {
        "version.SubscriptionCancel": 1,
        "subscriptionId": "10561777840324094517"
      },
   // ...Remaining Transaction objects
    }

It means the only way of getting the description and interval of canceled subscriptions is by making another getTransaction request.

Suggestion:
We can consider extending the attachment property

    "attachment": {
        "version.SubscriptionCancel": 1,
        "subscriptionId": "10561777840324094517",
        "subscriptionDescription": "SRC44 DESCRIPTION OF CANCELLED SUBSCRIPTION",
        "subscriptionInterval": "0000000",
     }

Benefits:

  • Prevents unnecessary requests
  • Save bandwidth

Proposal: Websocket API for P2P communications

As recently proposed (and already running experimental implementation) in SIP50 it could be interesting to add a web socket communication for P2P communication. This FR does not provide any technical details yet,... but I will analyze how P2P works and check how to enhance the API using WS.

The motivation is similar to SIP50. We might expect a lightweight event driven full-duplex communication which should be usually favored over common request/response communication.

Proposal: Expand the SRC-44 description field structure by adding a new field referencing country code

I propose that we expand the SRC-44 descriptor to include a new OPTIONAL property that refers to a "country code" in the description field structure.

The key would be labeled as ctry and the value would be just an ALPHA-2 Country code
https://www.iban.com/country-codes

These would be the properties

Field Name Required Full Name Value Format Example Rules Description
ctry NO Country Code string US A valid ALPHA-2 country code A string property which can help a profile expand its digital identity

[Feature request] - Adjust the fee for asset (token) issuance to 150000 * FEE_QUANT from 15000 * FEE_QUANT

Adjust the fee for asset (token) issuance to 150000 * FEE_QUANT from 15000 * FEE_QUANT

Currently the token creation is being abused by bad actors with offensive names and illegal acts and sending them to people unsolicited. It wasn't abused before the token issuance fee was lowered.

This causes a bad name for SIGNUM. And will drive people away.

Here are some names and their creators, not all offensive but some are the same as real coins past and present.
image
image
image

Not sure what the one that starts with Y even means.

Proposal: Reduce the block mining time to 2 minutes.

Hardfork is planned soon. I suggest that a more serious consideration be given to reducing the new block minting time from 4 minutes to 2 minutes.

Advantages and reasoning:

  1. Increase in transaction speed. Right now the transaction speed is 16 TPS. Now there are blockchains, such as Solana, Fantom, Algorand etc, where transaction speed is thousands of transactions per second. The logic of Signum does not allow to achieve such speed. But, reducing the mining time will be able to increase the speed already by 32 TPS, which is very significant in a fast-growing project.
  2. Now, to wait for the coins to get from the wallet to the wallet, user have to wait 4 minutes. Visa, PayPal, Solana do it almost instantly. Reducing the waiting time will make the network more user friendly.
  3. When the project becomes popular, it will have to process thousands of transactions. Users will pay a large fee to have their transaction processed first. Accordingly, people who are not willing to pay a large commission will have to wait a very long time for their transaction to be added to the block. This could theoretically cause the same high gas problems as Ethereum has now.
  4. Increase the speed of work with smart contracts. To confirm and start a smart-contract, programmer have to wait 2-3 blocks, that's 8-12 minutes. Reducing the block generation time make it 2 times faster without any losses.
  5. Working with NFTs. When people upload 10k collections to signumart it can paralyze the blockchain at all, especially if 10 artists put 10k images to upload at a time. The more the marketplace grows, the more speed is needed to process all those NFTs.
  6. GameFi. In the future Signum will be able to support smart contracts to create play-2-earn games. Players will get/create different attributes: swords, potions, lands, armor in the form of NFTs. If the game is dynamic, users will simply refuse to play it, knowing that they have to wait as long as 8 minutes to create one smart contract/make some on-chain action. Other slow blockchains are already facing this problem.
  7. Benefit to Miners. Now the number of mined coins decreased to 100 (I did not notice the benefit in the gradual reduction, it did not affect the price of the coin). There are 36000 coins mined per day, that's only $108 for 1034 miners. This money is not enough for the average miner to even pay for electricity, not to mention the benefit of buying hard drives. Many miners (myself included) have already sold their hard drives. The capacity right now is only 26.3 PiB. If miners get twice the amount of coins per day it might encourage people to invest money in this business and thus increase the size of the commitment. If 72,000 coins will be mined per day, it will be only 0.0033% increase in capitalization. That is 1.2% per year. This will have no effect on inflation.

Please consider my proposal thoroughly before HardFork is launched.

Proposal: Allow token descriptions to be mutable

I suggest that a more serious consideration be given to allowing token descriptions to be mutable.
As previously stated by ohager this is a protocol change.

Hope consider my suggestion thoroughly before a hard fork is launched.

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.