Skip to content

Instantly share code, notes, and snippets.

View Vishwas1's full-sized avatar
🎯
Focusing

Vishwas Anand Bhushan Vishwas1

🎯
Focusing
View GitHub Profile

Initial setup

Bitcoin setup

sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3

sudo apt-get install libssl-dev libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev

Setup Zagg-core

#Introduction

Developing Chrome Extensions is REALLY fun if you are a Front End engineer. If you, however, struggle with visualizing the architecture of an application, then developing a Chrome Extension is going to bite your butt multiple times due the amount of excessive components the extension works with. Here are some pointers in how to start, what problems I encounter and how to avoid them.

Note: I'm not covering chrome package apps, which although similar, work in a different way. I also won't cover the page options api neither the new brand event pages. What I explain covers most basic chrome applications and should be enough to get you started.

Table of Contents

  1. Understand the Chrome Architecture
  2. Understand the Tabs-Extension Relationship
  3. Picking the right interface for the job

Paxos

Proposor----+---+---------------^---------------+---+-----------------^----^------------
/Acceptor   |   |               |               |   | ACCEPT(s1,X)    |    |
            |   |PREPARE(s1)    |               |   |                 |    v 
Acceptor ---v---|-----------^---|---------------|---v-----------------|------------------
                |           |   |PROMISE(s1)    |                     |    ^ ACCEPTED(s1,X)
                |           |   |               |                     |    |
Acceptor -------v-----------+---+---------------v---------------------v----v--------------

+++ authors = ["vishwasbhushan"] categories = ["Blockchain"] date = "2019-02-25T10:00:00+05:30" description = "In this blog I am talking about how did we debug and fix build issue when we tried to integrate Stellar and Bitcoind code bases" tags = ["blockchain", "stellar", "bitcoin", "autotools", "c++", "automake", "autoconf", "build"] title = "Debugging Stellar and Bitcoin code bases integration build issue!" +++

Introduction

/home/vishswasb/work/proj/zagg/zagg-core/src/main/main.cpp:198: undefined reference to `SetupEnvironment()'
main/stellar_core-main.o: In function `AppInit':
/home/vishswasb/work/proj/zagg/zagg-core/src/main/main.cpp:68: undefined reference to `gArgs'
/home/vishswasb/work/proj/zagg/zagg-core/src/main/main.cpp:68: undefined reference to `ArgsManager::ParseParameters(int, char const* const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
/home/vishswasb/work/proj/zagg/zagg-core/src/main/main.cpp:74: undefined reference to `gArgs'
/home/vishswasb/work/proj/zagg/zagg-core/src/main/main.cpp:74: undefined reference to `HelpRequested(ArgsManager const&)'
/home/vishswasb/work/proj/zagg/zagg-core/src/main/main.cpp:75: undefined reference to `FormatFullVersion[abi:cxx11]()'
/home/vishswasb/work/proj/zagg/zagg-core/src/main/main.cpp:77: undefined reference to `gArgs'
/home/vishswasb/work/proj/zagg/zagg-core/src/main/main.cpp:77: undefined reference to `ArgsManager::IsArgSet(std::__cxx

Setup Zagg-core

  • clone zagg-core [email protected]:zagg-protocol/zagg-core.git
  • configure bitcoin.conf file
  • Put it in the folder /home/vishswasb/.bitcoin - by deffault bitcoin folder. change the according to yours.
  • configure stellar-core.cfg file
  • Make sure to configure stellar configuration as per stellar's specs like creating newdb, forcescp etc. you can follow this blog for that.
  • Put this file in the root directory of the project : zagg-core/src
  • Open terminal, navigate into directory zagg-core/src and run the command ./stellar-core --conf ../stellar-core.cfg
HTTP_PORT=11626
PUBLIC_HTTP_PORT=true
RUN_STANDALONE=false
LOG_FILE_PATH=""
NETWORK_PASSPHRASE="Standalone Zagg Network ; Oct 2018"
NODE_SEED="SCHE4W7T6VEQHETUFNGQUCDRACMHLUIQQETCMIW6HRB5B7CN2GY6RY3S zaggnode01"
NODE_IS_VALIDATOR=true
regtest=1
rpcuser=bitcoinuser
rpcpassword=bitcoinpass
rpcallowip=127.0.0.1
rpcconnect=127.0.0.1
gen=1
server=1
## Electrum Personal Server configuration file
## Comments start with #
[master-public-keys]
## Add electrum master public keys to this section
## Create a wallet in electrum then go Wallet -> Information to get the mpk
#any_name_works = xpub661MyMwAqRbcFseXCwRdRVkhVuzEiskg4QUp5XpUdNf2uGXvQmnD4zcofZ1MN6Fo8PjqQ5cemJQ39f7RTwDVVputHMFjPUn8VRp2pJQMgEF

----WHAT?---------------------

Proxy re-encryption is a set of algorithms which allows an untrusted proxy to transform ciphertext (homomorphic encryption) from being encrypted under one key to another, without learning anything about the underlying plaintext.

----BIGGER PICTURE------------

  • file sharing use case (m-to-m)
  • group chat use case
  • EHR use case