initial work on docs (#69)
* initial work on docs * fix DOCKER_VERSION * update location * add the path **properly** * Update docs workflow
This commit is contained in:
59
docs/Writerside/topics/about.md
Normal file
59
docs/Writerside/topics/about.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# About
|
||||
|
||||

|
||||
|
||||
## Goal
|
||||
|
||||
The goal of monero_c is simple, at least on the surface
|
||||
- Build monero for all platforms
|
||||
- Access monero functions from all languages
|
||||
- Bring in new features used by wallets but still not merged upstream
|
||||
|
||||
To achieve these tasks some major changes had to happen to monero.
|
||||
|
||||
## Building
|
||||
|
||||
For the most part `contrib/depends` directory of `monero` was used, as it is in perfect shape (that being said it's
|
||||
terrible to debug when something goes wrong). But it doesn't work with iOS, and it doesn't work on macOS, so some
|
||||
dependencies had to be pulled as a submodules. But that being said, linux can be used to build for all platforms (except
|
||||
for iOS - you need macOS for that, and you also need that 100EUR/year license to actually be able to do something with
|
||||
said library).
|
||||
|
||||
This is especially good because any device can run linux, on WSL2 or under docker.
|
||||
|
||||
## Accessing monero functions
|
||||
|
||||
Though just building the library is not enough, if you just `make wallet_api` in the upstream code you end up in a
|
||||
place where you technically have the functions in a dynamic library, but you can only use C++ ABI to interact with it.
|
||||
Which is not ideal. Of course, it is doable, if you want to deal with `__ZNK6Monero10WalletImpl7addressEjj` instead of
|
||||
`MONERO_Wallet_address`, and make sure that the way you pass in variables is what C++ expects.
|
||||
I went with the simplest and most standard way of doing that - C ABI (which is what monero should offer in the first
|
||||
place). Now with any language that supports C interop you can just go ahead and use monero wallet.
|
||||
|
||||
All functionality is simplified to use only the following types:
|
||||
|
||||
- bool
|
||||
- int
|
||||
- uint64_t
|
||||
- void*
|
||||
- const char*
|
||||
- void
|
||||
|
||||
## Bring in new features
|
||||
|
||||
There are some extra features inside of the code like
|
||||
- Polyseed support
|
||||
- Background sync
|
||||
- Airgap functions
|
||||
- Coin control
|
||||
- UR support
|
||||
- Ledger support (on android and iSO)
|
||||
- many fixes
|
||||
|
||||
These features land in the `patches` directory, and are applied to the upstream monero code.
|
||||
|
||||
## Summary
|
||||
|
||||
monero_c extends monero functionality and also simplifies it by a huge extent, if you want to use monero - monero_c is
|
||||
probably the way to go.
|
||||
Are you ready to start? Let's see how to build the binary.
|
||||
Reference in New Issue
Block a user