Bitcoin Forum
December 13, 2017, 09:40:00 AM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 [3]  All
  Print  
Author Topic: Bytecoin: Under the Hood  (Read 3060 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic.
neverminer77
Jr. Member
*
Offline Offline

Activity: 38


View Profile
April 07, 2015, 10: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 
1513158000
Hero Member
*
Offline Offline

Posts: 1513158000

View Profile Personal Message (Offline)

Ignore
1513158000
Reply with quote  #2

1513158000
Report to moderator
1513158000
Hero Member
*
Offline Offline

Posts: 1513158000

View Profile Personal Message (Offline)

Ignore
1513158000
Reply with quote  #2

1513158000
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1513158000
Hero Member
*
Offline Offline

Posts: 1513158000

View Profile Personal Message (Offline)

Ignore
1513158000
Reply with quote  #2

1513158000
Report to moderator
1513158000
Hero Member
*
Offline Offline

Posts: 1513158000

View Profile Personal Message (Offline)

Ignore
1513158000
Reply with quote  #2

1513158000
Report to moderator
DStrange
Sr. Member
****
Offline Offline

Activity: 336


View Profile
April 07, 2015, 11: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.

DStrange
Sr. Member
****
Offline Offline

Activity: 336


View Profile
April 07, 2015, 11: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<t_protocol_handler>::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?

DStrange
Sr. Member
****
Offline Offline

Activity: 336


View Profile
April 07, 2015, 11: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.

Ullo
Member
**
Offline Offline

Activity: 108


View Profile WWW
April 07, 2015, 12:24:29 PM
 #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.

Bytecoin BCN core team: https://bytecoin.org/
JypsiCreme
Full Member
***
Offline Offline

Activity: 149


View Profile
April 07, 2015, 12:49:11 PM
 #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?
Wanesst
Sr. Member
****
Offline Offline

Activity: 422



View Profile
April 07, 2015, 12:53:26 PM
 #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

Rias
Sr. Member
****
Offline Offline

Activity: 373


View Profile
April 07, 2015, 12:53:36 PM
 #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?
DStrange
Sr. Member
****
Offline Offline

Activity: 336


View Profile
April 07, 2015, 02:04:02 PM
 #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

cryptonight.net
Newbie
*
Offline Offline

Activity: 28

Have a nice mining!


View Profile WWW
April 07, 2015, 08: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

CryptoNight.net  -  BCN / XMR / XDN / DSH pool
dNote
Hero Member
*****
Offline Offline

Activity: 896



View Profile WWW
April 07, 2015, 08: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.

DigitalNote XDN website http://digitalnote.org
XDN 1st blockchain deposits with interest & instant untraceable crypto messages GUI https://github.com/xdn-project/digitalnotewallet/releases
Bitcointalk topic https://bitcointalk.org/index.php?topic=1082745.new#new
Rytir_fik
Full Member
***
Offline Offline

Activity: 139


View Profile
April 07, 2015, 10: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

I like Bytecoin (BCN). BYTECOIN.ORG the best to mine with MinerGate
Ullo
Member
**
Offline Offline

Activity: 108


View Profile WWW
April 07, 2015, 11: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.




Bytecoin BCN core team: https://bytecoin.org/
Ullo
Member
**
Offline Offline

Activity: 108


View Profile WWW
April 08, 2015, 10: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!

Bytecoin BCN core team: https://bytecoin.org/
Ullo
Member
**
Offline Offline

Activity: 108


View Profile WWW
April 08, 2015, 04:02:17 PM
 #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.

Bytecoin BCN core team: https://bytecoin.org/
Pages: « 1 2 [3]  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!