Accessing Ethereum Dapp - blockchain

Is their a way to access ethereum Dapps other than the mist browser. I was thinking along the lines of a normal browser like chrome. Also, as a sub question how are some Android and IOS apps connecting to the blockchain?

You can do that through Ethereum JSON-RPC: https://github.com/ethereum/wiki/wiki/JSON-RPC
You have to use
eth_call - read from contract
eth_sendTransaction - send transaction to a contract
You must understand that you'll also need to have an Ethereum node started, most probably with unlocked account to execute transactions from it. Which means you don't want to run it on public networks, but rather in local network. That's what Mist do for you essentially.
Also, take a look at MetaMask, it provides same API for browser based app, but requires an additional plugin to be installed into a browser

Related

Should blockchain technology be handled on the client side or the server side?

I'm a full-stack developer (specifically Django web developer).
I want to allow people to send Bitcoin and Ethereum in my website
Blockchain is new to me. I heard that blockchain applications can be written with both python (on the server side) and javascript (on the client side).
So, what programming langue is to write Blockchain? Do I write it on the server side or the server side? My guess is handling it in the server would be more secure because hackers can read client code and inject malicious javascript code through the console panel. Am I right?
To be concise, my question is Should blockchain technology be handled on the client side or the server side?
The correct question is
Should I use blockchain? And what problems it actually will solve?
And about
To be concise, my question is Should blockchain technology be handled on the client side or the server side?
Where do you plan to store trusted blockchain data? Inside your server behind the backend logic? Just use standard database for these purposes. Here is no difference in security and trust aspects. You will be only one owner of blockchain data and will be able change it as you wish and no difference is that DB or blockchain (yes, in theory you have to overwrite whole blockchain even if you want to change only one block. It is little bit complex than overwrite one row in DB but not impossible). If you plan to store blockchain data at client side it is no matter what logic you have inside frontend/backend code. Anyone will be able to change it directly, so blockchain should be protected by blockchain mechanisms.

Run solidity/deploy ethereum smart contract on a website

Does anyone know if I can deploy my own smart contract or run/host a solidity code via my own website? I am following this Youtube tutorial by Decypher Media.
If I'm correct, the testrpc address localhost:8545 means that I am deploying the contract as being part of a private blockchain that is only local to my pc, right? This is the case for development. So if I would want to actually deploy the contract as an actual Ethereum node or to the Ethereum blockchain itself, would I just have to replace the localhost:8545 with the actual URL? I am not totally familiar with this yet, but I am really trying to develop something on Ethereum.
I am looking at creating a contract that sends a token to a dynamic number of eth addresses (i.e. today I may have to send tokens to 10 eth addresses, tomorrow I may do it for 15). So, instead of firing the contract for each token which would be time-consuming, I would like to do it automatically/seamlessly. But I want to be able to run my solidity code and handle the contract through my own website instead of running it on the ethereum wallet application or somewhere else.
Anyone, please share some ideas on how we can achieve this, or maybe a summary/outline of the steps that we would need to take to achieve it. Any help would be great! Thanks!
You have many possibilities to achieve this. It depends what you really want to do.
1 - With testrpc :
The easiest way to do this is to run testrpc on a server, for example a free aws-server or azure and expose the testrpc on internet. Then you can replace localhost:8545 by :8545 or using a dns to by-pass the ip.
2 - With a private Ethereum Blockchain :
If you want a real private Ethereum Blockchain, you can build a private node on a aws/azure/google server and expose this node to internet. See this, to learn a bit more : https://blockgeeks.com/two-node-setup-of-a-private-ethereum/
3 - Use a ethereum public network
You can send your smart contract to the public ethereum testnet and then use Metamask and web3js to connect your website to the ethereum testnet. More information for Metamask and how to deploy a contract with Metamask : https://karl.tech/learning-solidity-part-1-deploy-a-contract/ and here https://citywebconsultants.co.uk/blog/blockchain/introducing-ethereum-development-part-1-metamask-and-web3

How is a hyperledger fabric blockchain stored on a PC?

I'm trying to get my head around blockchain and I'm finding it difficult to get a straight forward answer to this. Say I create a web application that interacts with a blockchain. A user opens my web app, logs in and uses that web application and so a transaction occurs and a new block is added to the chain. How is that blockchain stored on their PC, since the point of blockchain is that it is stored on every participating node? In what format is it stored?
Your web application will interact with the blockchain as a client (likely using one of the Hyperledger Fabric SDKs). The "blocks" will be stored on one or more peer nodes (depending on how many peers are connected to a given channel) not on your client nor on the server hosting your web application.
I'd recommend looking at this to understand the overall transaction flow and this to understand the ledger.

Making Transaction from remote device (e.g. Mobile) to make Transaction or call data from Blockain

I was thinking of developing a mobile application which can make transaction in private network nodes of which are located at a server.
How this objective can be achieved?
What should be the technologies I should learn to implement?
I understand that you are talking about developing a permissioned Blockchain, i.e. a private network where everyone can't access. So, if I were you, I'd learn about the Fabric project by Hyperledger, which is an implementation of Blockchain for permissioned networks. You have more information about it here
Fabric allows you to create a permissioned Blockchain. Then, you will develop the clients that will call the Blockchain. In the Blockchain, you deploy your smartcontract, i.e. the code that you want to be executed.

using firebase on offline networks

I have a intranet network of 50 computers without an internet connection; is it possible to use firebase to share data across these computers - for example, a chat program? My limited knowledge in this field hints that this should be possible if the firebase api was downloaded to the local network and referenced with local expressions rather than web links - is this possible?
Thank you
Greg
Firebase is a cloud service where all data is loaded from and synced back to the cloud. Currently there's no Firebase server that can be run locally, so it won't work without an internet connection.
Firebase does a very good job of punching through proxies / Firewalls though, so if you're concerned that your company's network connection might block it, I recommended at least giving it a try first -- it will probably work, unless you literally have no internet connection at all.