Skip to content

FAQ

Are Smart Contracts running in parallel on all nodes (like Ethereum)? If so, would not more nodes have any advantages as the burden increases at the same rate?

Yes, ATs are running in parallel but more nodes are important for building additional layers of computation. Similar to the “sharding” planned on the Ethereum Network. An additional computation layer for ‘free contracts/dapps’ can be activated on more powerful nodes. Since the IEP core supports Tendermint and custom storage models, the results can be written and can interact with the mainchain. For the current AT implementation the number of nodes are only important for chain stability and security.

Are more core features (with assembler) planned, except for Smart Contracts?

No more core features are planned since the current core is ‘fully loaded’. The current features covers all imaginable financial constructs and even more. The main focus after core update 0.2.2 feature freeze is SERVICES. Not everything needs to be on-chain, there are many services which are running much more efficient in distributed systems off-chain. especially when looking at speed and maintenance. Please see the extension list in the wallet to get an overview of the planned services.

Since the core functions are complete, I would be interested to know which feature is the most comprehensive now? In my opinion, it would have to be AT (Smart Contracts), since an infinite variety of programs are possible here. Is that correct?

The immense set of native features are the real gem here. IEP is a huge building blocks system where simple feature chaining offers tremendous potential to build a full and complete digital economy. AT (Smart Contracts) provides great flexibility but the Asset Exchange and even Alias has huge and profound potential once the inner power is discovered and recognized.

Bitcoin has problems with the “Colored Coins” backward search algorithm, and Ethereum uses persistent storage combined with the Turing complete script language to encode a currency. How are IEPs processing such colored coins?

Colored coins are an old term to ‘tag’ coins. IEP is based on isolated so called “transaction types” to introduce ‘token tagging’. This approach allows much more complexity on ‘special colored coins’. The asset exchange for instance is based on the ancient term ‘colored coins’. The advantage with IEP’s advanced transactions (aka colored coins) is that it’s easy to add very special transaction types. We already implemented “Escrow” and “Subscriptions” as well as AT (Smart contracts) also. It is not a problem to add even super complex transaction types on IEP later. By the way, we will introduce a new type with side-channels and distributed computation as soon as ready and after intense testing.

We use MongoDB as a database which is eventual consistency. Which consistency model do we use and why?

We are using H2 (core build-in) as chain storage. H2 offers strict consistency out of the box. MongoDB is used for all service backends (like peerexplorer, newsserver etc). Consistency is a natural feature of H2 same like referential integrity, checksums, locks, transactional features and commits to ensure data integrity.

How do cryptocurrencies work?

Coin transactions take place between two wallets. It works in the same way as a bank wire, but here, it is based on encrypted messages. The confirmation time for a transaction differs depending on the cryptocurrency. The Infinity Economics platform places great emphasis on transaction speed to ensure that XIN is used as a digital currency XIN in practice.

Is the password without https in the wallet in plain text transmitted to the node or encrypted?

It stores the public key derived from the pass phrase when the first transaction occurs, so this is secured as its already encrypted and then gets stored.

The main challenge with the different blockchains currently on the market are the lack of scaling potential. What are the IEP solution to this? and how many txs pr. second can IEP currently process?

scaling is the ultimate challenge (for all crypto platforms) and IEP will go sidechains next year to offer fast and free transactions. The current planned sidechain backend will be based on Tendermint. The current core already provides interfaces to access an additonal Tendermint peer layer. While Tendermint is the current favorized solution other are considered as well and IEP always monitoring new development closely.

Several testnet simulations have shown that 1,000 tx/s are doable without any problems at all but before blocksize increasements are made additionals tests, mainly to measure peer latency and validation processing are needed to confirm that even low powered nodes/devices are able to keep up with bigger blocks within one minute block creation.

What is IEP?

IEP is a Multipurpose blockchain platform with multiple native core-level features. It is coded from scratch in Java, unlike most of the other platforms launched at the time. IEP uses 100% Proof of Stake as consensus algo. So if you run a node on IEP your chance of processing the next block increases with the number of XIN you have. Because it’s not dependent on computational power, a full node can run on something as light as a Raspberry Pi. Only 9 billion tokens were created in the genesis block back in January 2017 and since there is no inflation, there will be no new XIN created. So, when blocks are forged only the transaction fees are given as a block reward.

Where can I find more detailed information about IEP and its features?

We recommend taking a look at this Wiki for detailed information. Start in the Features section of the main page.

Where do I find information about the API?

Information about the API can be found on the API page of this wiki.

How many nodes are up for IEP?

PeerExplorer is a great tool to see live information about nodes.

Where is the source code?

You can find the link of source code in this wiki’s source-code section.

Where can I get the changelog?

You can see the change logs by follow this link.

Which core features are written in Assembler?

Automated Transactions/ Smart Contracts are written in Assembler.

Please explain more about H2 (core build-in) that we use as chain storage. I have never heard H2 before.

We are using H2 (core build-in) as chain storage. H2 offers strict consistency out of the box. MongoDB is used for all service backends (like peerexplorer, newsserver etc). Consistency is a natural feature of H2 same like referential integrity, checksums, locks, transactional features and commits to ensure data integrity.

H2 is an open-source lightweight Java database. It can be embedded in Java applications or run in the client-server mode. Mainly, H2 database can be configured to run as inmemory database, which means that data will not persist on the disk. Because of embedded database it is not used for production development, but mostly used for development and testing. The main features of H2 Database are as follows −

  • It is an extremely fast database engine.
  • H2 is open source and written in Java.
  • It supports standard SQL and JDBC API. It can use PostgreSQL ODBC driver too.
  • It has embedded and Server mode.
  • H2 supports clustering and multi-version concurrency.
  • It has strong security features.

When I have one public IP address is it possible to run a node with this one with different ports. Please give me an example how to configure the custom.properties from two nodes.

Yes you may run node with same ip and different ports but make sure other ports will not conflict which you have configured in properties file (like peers ).

eg:

## API
xin.apiServerPort=23450
xin.apiServerSSLPort=23458

## Peer
xin.peerServerPort=23451
xin.defaultPeerPort=23456

example : to configure the custom.properties from two nodes

# custom.properties for node-1

## API
xin.enableAPIServer=true
xin.apiServerPort=23457
xin.apiServerSSLPort=23458
xin.allowedBotHosts=127.0.0.1; localhost; [0:0:0:0:0:0:0:1];
xin.apiServerHost=0.0.0.0
xin.adminPassword=testadmin
xin.disabledAPITags=
xin.disabledAPIs=

## Peer
xin.isOffline=false
xin.shareMyAddress=true
xin.savePeers=true
xin.usePeersDb=true
xin.getMorePeers=true
xin.myAddress=
xin.myPlatform=
xin.myHallmark=
xin.defaultPeers=185.35.137.7; 185.103.75.217; 185.35.139.101; 185.35.139.102; 185.35.139.103; 185.35.139.104; 185.35.139.105; 46.244.20.41; 208.95.1.177; 199.127.137.169
xin.wellKnownPeers=185.35.138.132; 185.35.138.136; 185.35.138.137; 185.35.138.139; 185.35.138.140; 185.61.149.40; 185.86.151.44; 185.86.148.134; 185.86.148.142; 185.86.151.18
xin.knownBlacklistedPeers=
xin.enablePeerUPnP=false
xin.peerServerPort=23456
xin.defaultPeerPort=23456

## Misc
xin.ledgerAccounts=
xin.ledgerTrimKeep=30000
xin.allowedToForge=
xin.lockedAccounts=
xin.maxNumberOfMonitors=0
xin.maxNumberOfForgers=0

## Shuffling
xin.maxNumberOfShufflers=0

## DBS
xin.trimFrequency=100
xin.maxPrunableLifetime=1209600
xin.includeExpiredPrunable=true

# custom.properties for node-2

## API
xin.enableAPIServer=true
xin.apiServerPort=23451
xin.apiServerSSLPort=23459
xin.allowedBotHosts=127.0.0.1; localhost; [0:0:0:0:0:0:0:1];
xin.apiServerHost=0.0.0.0
xin.adminPassword=testadmin
xin.disabledAPITags=
xin.disabledAPIs=

## Peer
xin.isOffline=false
xin.shareMyAddress=true
xin.savePeers=true
xin.usePeersDb=true
xin.getMorePeers=true
xin.myAddress=
xin.myPlatform=
xin.myHallmark=
xin.defaultPeers=185.35.137.7; 185.103.75.217; 185.35.139.101; 185.35.139.102; 185.35.139.103; 185.35.139.104; 185.35.139.105; 46.244.20.41; 208.95.1.177; 199.127.137.169
xin.wellKnownPeers=185.35.138.132; 185.35.138.136; 185.35.138.137; 185.35.138.139; 185.35.138.140; 185.61.149.40; 185.86.151.44; 185.86.148.134; 185.86.148.142; 185.86.151.18
xin.knownBlacklistedPeers=
xin.enablePeerUPnP=false
xin.peerServerPort=23450
xin.defaultPeerPort=23450

## Misc
xin.ledgerAccounts=
xin.ledgerTrimKeep=30000
xin.allowedToForge=
xin.lockedAccounts=
xin.maxNumberOfMonitors=0
xin.maxNumberOfForgers=0

## Shuffling
xin.maxNumberOfShufflers=0

## DBS
xin.trimFrequency=100
xin.maxPrunableLifetime=1209600
xin.includeExpiredPrunable=true

I wasn’t able to activate SSL in my node. Please explain me how to configure the custom.properties that it will work. Because with this entrys it doesn’t work: ## SSL xin.apiSSL=true xin.keyStorePath=Keystore xin.keyStorePassword=*** xin.apiServerSSLPort=23458

Activate SSL in node :

update custom.properties file with following :

xin.apiSSL=true

Its can be true/false. This will activate SSL in your node.

xin.keyStorePath=Keystore

Keystore is a name of a file (file name with/without path) which can be generate follow these steps :

  • From the command line cd to the xin (IEP core) folder then issue the following command: keytool -genkey -keystore keystore
  • Enter a keystore password, save it somewhere and don’t lose it since you’ll need it later.
  • Specify the server domain name correctly in reply to the confusing “What is your first and last name” prompt.
  • Fill the rest of the parameters, confirm and then enter a key password which should be the same as the keystore password.
  • Once you are done, verify that a file named “keystore” has been created in the root folder of your IEP server.
  • List the content of your keystore file and verify that the information is correct:
keytool -list -v -keystore keystore
xin.keyStorePassword=***

add keystore password which you have generated while creating keystore.

xin.apiServerSSLPort=23458

Port for https/json API request. If same as xin.apiServerPort, the xin.apiSSL setting determines whether SSL is used or not.

if you got this failure : 2018-06-23 14:52:24 ERROR – API.lambda$static$1: Failed to start API server java.lang.IllegalStateException: No protocol factory for SSL next protocol: ‘api/1.1’ in ServerConnector@1d94c7d5{SSL,[ssl, http/1.1]}{0.0.0.0:23458}

solution : The exception says that protocol api/1.1 is unknown, so after changing next protocol of sslContextFactory from api/1.1 to http/1.1 then it will work.

Please give me a custom.properties example with the maximum of enabled features.

Please refer this article : IEP-default-properties-configuration-file

The client says I have 0 XIN in my account but I have not transferred my coins anywhere?

In some cases, right after unlocking your account, the balance might momentarily appear like zero or a different amount than expected. This will happen if the blockchain has not been completely downloaded on your node yet, and the blocks containing your deposits are yet to be downloaded. Check the time stamp on the latest block in the “Blocks” panel. If it is not very recent (within a minute or two), wait and give the software some time to catch up. Your balance should match the balance showing for your account in the blockchain explorer in a few minutes.

I still have not figured out how Referenced Transaction works under “Account -> Advanced -> Control” because I have no idea where to get the full hash from?

Referenced Transaction : It makes the transaction dependent for security purpose. In Referenced Transactions your transaction will be executed if the referenced transaction hash is included into the blockchain.

All transactions have their full hash so if you want to do Referenced Transaction then you need full hash of any transaction which you can get from “Account → Transactions ” where you will get transaction details click on Details column which will open a Transaction Details model click on “# Full Hash” button, copy that hash and put it in Referenced Full Hash input box.

I’m trying to unlock my account, but I keep accessing a different account number than the one I created. What’s going on?

Since different account numbers are accessed using different passphrases, getting a different account number than the one you expected means you used a different passphrase than the one originally used to generate your account number. Make sure you are introducing your original passphrase correctly. This means double-checking for typing mistakes, and ensuring no extra spaces are accidentally pasted (or omitted!) in the beginning or the end of your passphrase as you paste it to unlock your account.

I created an account. Why cannot I see it referenced in the blockchain?

In general, you can use a blockchain explorer to search for your account, examine your balance, transaction history, and more. Information about your account will not appear in the blockchain until there is at least one confirmed transaction that references your account. This is because the blockchain is a record of transactions, not account information. If you have created an account but have never sent any XIN to it, the account will not appear in the blockchain.

What is a staking pool?

Staking Pools are focused on making the most out of the combined staking capacity. Generally, the bigger the staking pool, the more chances are there that the staking pool will be picked and verify a block.

Let’s take an example.

Person A: He is a staking wallet with 1000 XIN coins. He doesn’t want to stake his coins and just want to do it solo. Now, when a block needs to be mined, the blockchain tries to find the most suited staking wallet to do it. In this case, there are slim chances that Person A wallet will be chosen to validate the block.

Person B: Person B understand staking pool. He takes part in the staking pool by contributing the number of his coins into it. As the staking pool value is way higher compared to other wallets/pool, there are high chances that it will be rewarded for resolving a pool. For example, the pool has more than 1 million XIN. This makes the pool at higher chances of being chosen for block verification.

By taking part in staking pool, Person B has a higher chance of earning more profit. The reward is divided among the pool participant. The pool service might take some percentage of the reward as service charges.

Can be acheived by account Leasing (Balance leasing)

If I lease my Xin to a Node Xin address, will that be counted as an benifit?

Yes, It will increase the forging power.

Is there any information on balance leasing?

Balance Leasing / Account Leasing allows a user to lease its forging power to another account for a fixed period of time. This feature enables the creation of forging pools, where the forging power of multiple users is combined to increase the chance of generating a block. Account leasing is also relevant if a user wants to take part in the forging process without having to keep a node running 24/7.

Please refer this link.