Pages:
Author

Topic: Bytecoin: Under the Hood (Read 3218 times)

member
Activity: 108
Merit: 10
April 08, 2015, 11:02:17 AM
#55

There are problems with building on Ubuntu 13.10 with boost 1.53 because boost-coroutine is available only in 1.54 for this old Ubuntu release.

Other two problems are reported on GitHub by pmitchev:
https://github.com/amjuarez/bytecoin/issues/36 (Balance is not printed correctly)
https://github.com/amjuarez/bytecoin/issues/37 (Old wallet import wrong prints)

No reaction yet on both Sad

Amjuarez has just commented on both issues. The #37 is a bug which is going to be fixed within a couple of hours. And #36 is actually a change in behavior:

Quote
We should have provided a more extensive explanation on this one. Actually, it's not a bug, but a usability fix that was required for Bytecoin Wallet.

Previously, "balance" was a sum of pending balance and unlocked balance. As of version 1.0.3 this behavior was fixed so that balance corresponds to pending balance. Note that in GUI wallet all three balances are available.

We're going to rename this field to avoid further confusion. The patch is being processed at the moment.

And finally, regarding the boost issues, you're totally correct. We will update the readme file. Thank you!

All three issues have been resolved. I hope you'll help us with GUI wallet too.
member
Activity: 108
Merit: 10
April 08, 2015, 05:40:48 AM
#54

There are problems with building on Ubuntu 13.10 with boost 1.53 because boost-coroutine is available only in 1.54 for this old Ubuntu release.

Other two problems are reported on GitHub by pmitchev:
https://github.com/amjuarez/bytecoin/issues/36 (Balance is not printed correctly)
https://github.com/amjuarez/bytecoin/issues/37 (Old wallet import wrong prints)

No reaction yet on both Sad

Amjuarez has just commented on both issues. The #37 is a bug which is going to be fixed within a couple of hours. And #36 is actually a change in behavior:

Quote
We should have provided a more extensive explanation on this one. Actually, it's not a bug, but a usability fix that was required for Bytecoin Wallet.

Previously, "balance" was a sum of pending balance and unlocked balance. As of version 1.0.3 this behavior was fixed so that balance corresponds to pending balance. Note that in GUI wallet all three balances are available.

We're going to rename this field to avoid further confusion. The patch is being processed at the moment.

And finally, regarding the boost issues, you're totally correct. We will update the readme file. Thank you!
member
Activity: 108
Merit: 10
April 07, 2015, 06:03:29 PM
#53

There are problems with building on Ubuntu 13.10 with boost 1.53 because boost-coroutine is available only in 1.54 for this old Ubuntu release.

Other two problems are reported on GitHub by pmitchev:
https://github.com/amjuarez/bytecoin/issues/36 (Balance is not printed correctly)
https://github.com/amjuarez/bytecoin/issues/37 (Old wallet import wrong prints)

No reaction yet on both Sad

Thank you for reporting the issues. I apologize for this late reaction. Bytecoin team is focused on GUI release at the moment, so we're a bit slow. I'll try to push these forward asap.



full member
Activity: 139
Merit: 100
April 07, 2015, 05:02:38 PM
#52

There are problems with building on Ubuntu 13.10 with boost 1.53 because boost-coroutine is available only in 1.54 for this old Ubuntu release.

Other two problems are reported on GitHub by pmitchev:
https://github.com/amjuarez/bytecoin/issues/36 (Balance is not printed correctly)
https://github.com/amjuarez/bytecoin/issues/37 (Old wallet import wrong prints)

No reaction yet on both Sad
I have the same issue as you (Balance is not printed correctly) .... be patient..  Wink as usual with BCN... the results are the best but it takes time...just be patient.  Smiley
hero member
Activity: 896
Merit: 1000
April 07, 2015, 03:50:19 PM
#51
Thanks for your doings, you did a great work, XDN will follow your vision and  DarkNote will also bring its own features.
newbie
Activity: 28
Merit: 0
April 07, 2015, 03:05:34 PM
#50

There are problems with building on Ubuntu 13.10 with boost 1.53 because boost-coroutine is available only in 1.54 for this old Ubuntu release.

Other two problems are reported on GitHub by pmitchev:
https://github.com/amjuarez/bytecoin/issues/36 (Balance is not printed correctly)
https://github.com/amjuarez/bytecoin/issues/37 (Old wallet import wrong prints)

No reaction yet on both Sad
sr. member
Activity: 336
Merit: 251
April 07, 2015, 09:04:02 AM
#49
Hi, people from Bytecoin team. First of all, thank you for your work and for your attempt to explain all hardcore things to average users.
But I think more specified documentation on new Bytecoin features (at least, INode and IWallet) is needed. Developers should be provided with detailed explanation, pics and so on. Would you be so kind to tell me where I can get it? Is there something like docs section at Bytecoin website?

Hello! Thanks for your positive feedback on our work. You can find the full technical documentation with all schemes, pics and tables on Bytecoin wiki.

Here are the links on the feature description we added recently

INode on Bytecoin wiki
IWallet on Bytecoin wiki
ITransaction on Bytecoin wiki
sr. member
Activity: 373
Merit: 250
April 07, 2015, 07:53:36 AM
#48
I'm sorry for the triple posting.

Why Bytecoin transactions can stuck in mempool for long time?

It may generally happen due to the following reasons:

1. The fee is too low and no miner is accepting the transaction.
2. The transaction size is too large (in kb). This may happen due to a lot of small inputs involved instead of larger ones. A large mixing amount (>15) may also contribute to excessive size of a transaction.

Did you do anything to reduce the tx size in this release? Or to mix the inputs smarter?
sr. member
Activity: 421
Merit: 250
April 07, 2015, 07:53:26 AM
#47
This 1.0.3 Bytecoin reference client release is dev-oriented, so as a user you won't be able to notice the difference right now. I guess GUI Wallet (coming out later this week) will be more attractive to you. And if you are a merchant willing to accept Bytecoins, your solution is payment gateway (coming out with v.1.0.4), not C++ API libraries.

Why would a regular user need that stuff? From what I understand I don't need to download this Bytecoin update if I'm not a dev?

With this update we're giving access to Bytecoin engine to 3rd party developers. Ideally, this will lead to more services emerging on top of Bytecoin. So as a regular user you are going to see the whole ecosystem being developed at an increased rate.

Thanks for the reply! I look forward to the GUI-wallet! Cheesy
full member
Activity: 149
Merit: 100
April 07, 2015, 07:49:11 AM
#46


INode

Bytecoin network basics

Bytecoin depends on its peer-to-peer network, basic unit of which is a node. The most common node that you may find in the network is Bytecoin Reference Client daemon (bytecoind).

There are two general types of nodes:

  • Seed is a node that allows inbound connections.
  • Peer is a node that doesn't allow inbound connections (e.g. if its user chooses so or due to firewall network rules). Since all the nodes are frequently asking other seed nodes if anything new has happened in the network (a new block mainly), peers are still perfectly synced.

Bytecoin IWallet and ITransaction

While INode is capable of relaying and processing blocks, it cannot access any information regarding user funds or create transactions. However, there are certain applications (e.g. wallets) that require such methods.

Bytecoin team wanted to give a varying level of access to CryptoNote transactions core with two API interfaces:

  • IWallet operates on the business logics level. It is useful if you simply need to receive and send transactions, without going into CryptoNote protocol details. Should you require to transfer money with IWallet, you just need to indicate the receiver's address, the amount, and the mixing level. IWallet will do the hard work for you, as it will select the inputs, and then create, validate, sign, and broadcast the transaction.
  • ITransaction is a low-level interface that gives full access to CryptoNote transactions engine. It is designed for those applications that require strict control of transaction creation process. For instance, ITransaction allows you to select specific inputs, and has separate methods for signing and broadcasting a transaction. It also provides access to multisig functionality.

Both API interfaces are capable of doing exactly the same, but with varying level of detalization. That is why IWallet belongs to Bytecoin high-level API, while ITransaction is low-level.

Both new simplewallet and the upcoming Bytecoin Wallet have IWallet in their core. Just like INode interface can boast with better performance than legacy bytecoind, IWallet is a faster version of legacy simplewallet source code. As of version 1.0.3 simplewallet has migrated to this interface, which reduced the time required to process a single block by 15%.

To be precise, new Bytecoin simplewallet is a basic console program that uses IWallet and proxying INode. On the other hand, Bytecoin GUI Wallet utilizes IWallet and in-process INode (which automatically runs as proxying in case you already have an instance of bytecoind launched).

We expect the vast majority of applications to choose IWallet, while ITransaction is for those who require CryptoNote transactions fine-tuning. For instance, this level of access may be required by such services as payment processors. These applications often have their own custom logic of transaction creation and various complicated modules. ITransaction allows to split the transfer process according to the architecture needs.

Moreover, ITransaction also gives access to multisignature API that is capable of powering on-blockchain escrow services and foundation wallets. Bytecoin multisig belongs to M-of-N scheme. We will be covering multisignature in details in one of the next blog posts, but here you may find its description in laymen terms.


Hi, people from Bytecoin team. First of all, thank you for your work and for your attempt to explain all hardcore things to average users.
But I think more specified documentation on new Bytecoin features (at least, INode and IWallet) is needed. Developers should be provided with detailed explanation, pics and so on. Would you be so kind to tell me where I can get it? Is there something like docs section at Bytecoin website?
member
Activity: 108
Merit: 10
April 07, 2015, 07:24:29 AM
#45
This 1.0.3 Bytecoin reference client release is dev-oriented, so as a user you won't be able to notice the difference right now. I guess GUI Wallet (coming out later this week) will be more attractive to you. And if you are a merchant willing to accept Bytecoins, your solution is payment gateway (coming out with v.1.0.4), not C++ API libraries.

Why would a regular user need that stuff? From what I understand I don't need to download this Bytecoin update if I'm not a dev?

With this update we're giving access to Bytecoin engine to 3rd party developers. Ideally, this will lead to more services emerging on top of Bytecoin. So as a regular user you are going to see the whole ecosystem being developed at an increased rate.
sr. member
Activity: 336
Merit: 251
April 07, 2015, 06:29:02 AM
#44
Bytecoin team made a lot of hard developers work. But... where's long-awaited Bytecoin GUI?  Huh 

Thanks! Bytecoin GUI-wallet will be released by the end of this week.
sr. member
Activity: 336
Merit: 251
April 07, 2015, 06:21:04 AM
#43
Cn't get it to run: the daemon.

2015-Apr-07 20:44:28.092825 Starting...
2015-Apr-07 20:44:28.093351 bytecoin v1.0.3.387()
2015-Apr-07 20:44:28.093427 Module folder: ./bytecoind
2015-Apr-07 20:44:28.095038 Initializing p2p server...
2015-Apr-07 20:44:28.114431 Binding on 0.0.0.0:8080
2015-Apr-07 20:44:28.114681 ERROR /tmp/githubcom/amjuarez/bytecoin/contrib/epee/include/net/abstract_tcp_server2.inl:470 Exception at [boosted_tcp_server::init_server], what=bind: Address already in use
2015-Apr-07 20:44:28.114738 ERROR /tmp/githubcom/amjuarez/bytecoin/src/p2p/net_node.inl:216 Failed to bind server
2015-Apr-07 20:44:28.114806 ERROR /tmp/githubcom/amjuarez/bytecoin/src/daemon/daemon.cpp:189 Failed to initialize p2p server.
2015-Apr-07 20:44:28.115116 Mining has been stopped, 0 finished


How do i fix this?

How do i change the address??

Fixed

./bytecoind --help

./bytecoind --p2p-bind-ip localhost --p2p-bind-port 2222 

Did you fix the problem?
sr. member
Activity: 336
Merit: 251
April 07, 2015, 06:17:08 AM
#42
Interested.

Keep up the good work.

Great news!!! Let's finally get Bytecoin to the moon! I mean to Mars  Grin

We try our best to meet all your demands! Stay tuned.
newbie
Activity: 38
Merit: 0
April 07, 2015, 05:23:04 AM
#41

A lot of work has been done on refactoring Bytecoin Core’s source code. This process started with the version 0.8.11, which had Bytecoin high-level API interface declared for the first time. The newly released Bytecoin Reference Client v.1.0.3 is the next significant updated for the Bytecoin Core.

Here I will explain what has been happening under the Bytecoin's hood and what our technology vision is. This description is crucial to understand Bytecoin’s roadmap and the necessity to pursue its vector.

The v.1.0.3 release notes focus on the following updates:

  • In-process INode implementation for applications
  • Low-level ITransaction API interface for ordinary and multisig transactions
  • Simplewallet migration to high-level API (namely, INode plus IWallet)
  • Instant transaction notifications for in-process INode


Purpose of this update

V.1.0.3 is an important milestone on the way to standardize various components' access to Bytecoin network. It is also a requirement for Bytecoin GUI Wallet, which is coming out later this week.

We are currently getting Bytecoin Wallet ready for the release, and have already rolled out the new version of simplewallet. These wallets are very different, as simplewallet doesn't provide real-time interaction and shows only a tiny part of the information that Bytecoin Wallet has. However, both wallets are powered by exactly the same two high-level API interfaces: INode and IWallet. This allows us to greatly unify Bytecoin source code and improve development process efficiency.

What is even more important, the newly updated high-level API gives 3rd party developers the native access to all Bytecoin features. As of now, any developer wishing to create his own native Bytecoin wallet has all the tools available.

We firmly believe that for the vast majority of cases 3rd party developers should operate on the business logics level, not going into technological hardcore. Our high-level API (namely, INode and IWallet interfaces) serves that very purpose. It is much easier to operate with from inside a C++ application than the classical bytecoind and simplewallet REST API. It gives access to all main Bytecoin features in a convenient and comprehensible way. For example, you don't need to take care of an instance of simplewallet running in the background to power your GUI wallet. Business can focus on the user experience and let IWallet work out-of-box! And in case you need to have a higher level of control over CryptoNote protocol, utilize low-level ITransaction interface instead of high-level IWallet.

By introducing such a level of abstraction, we greatly simplify the experience of applications developers that work with Bytecoin. Our high-level API is a single point of responsibility. In case you need a method that is not yet provided, you may contact Bytecoin Support and have it implemented in the upcoming releases.


Bytecoin team made a lot of hard developers work. But... where's long-awaited Bytecoin GUI?  Huh 
sr. member
Activity: 373
Merit: 250
April 07, 2015, 05:17:46 AM
#40
This 1.0.3 Bytecoin reference client release is dev-oriented, so as a user you won't be able to notice the difference right now. I guess GUI Wallet (coming out later this week) will be more attractive to you. And if you are a merchant willing to accept Bytecoins, your solution is payment gateway (coming out with v.1.0.4), not C++ API libraries.

Why would a regular user need that stuff? From what I understand I don't need to download this Bytecoin update if I'm not a dev?

The developers have mentioned several times that this update is for developers and 3rd party applications. It also powers the new GUI. It's worth reading the answers to the questions from time to time, especially if they repeat.

Also, I think you really underestimate the work that has been done inside Bytecoin tech. Try re-reading the OP, it gives a decent overview.

This 1.0.3 Bytecoin reference client release is dev-oriented, so as a user you won't be able to notice the difference right now. I guess GUI Wallet (coming out later this week) will be more attractive to you.
newbie
Activity: 23
Merit: 0
April 07, 2015, 04:31:45 AM
#39
sr. member
Activity: 462
Merit: 250
April 07, 2015, 04:22:31 AM
#38
Keep up the good work.
legendary
Activity: 1232
Merit: 1011
Monero Evangelist
April 06, 2015, 04:32:28 PM
#37
Interested.
newbie
Activity: 28
Merit: 0
April 06, 2015, 03:18:14 PM
#36
Also, am I right to say that the introduction of this new feature means that unlike other cryptocurrencies I would be able to pay for coffee and not to wait until my transaction is completed?

No, it just tells you if a tx with an output belonging to you is in the mempool or not. Previously you had to wait about 2 minutes for it to enter a block to see if it was there or not. It's not instant tx, it's more like "did any of the transactions I saw recently on the network have funds belonging to me". I think it was a Bitcoin core wallet feature from day one.

For Bitcoin and derived forks it's much cheaper from both computational and architectural points of view to check if this tx is mine or not. In CryptoNote wallet and daemon are separated and need additional interfaces to talk about mempool content. And key derivation also consumes CPU.
Pages:
Jump to: