Code Monkey home page Code Monkey logo

peer-chat-redux's Introduction

Holochain Basic Chat

NOTE: this chat is for the deprecated holochain-redux, for a more recent chat example on holochain-rsm please see elemental-chat

A simple chat app designed to get new users up, running and developing on Holochain

Alt text

Get chatting using nix & the latest released basic-chat

  • Install nix tooling on mac/linux
  curl https://nixos.org/nix/install | sh
  • Start a new nix-shell that has everything we need, this commit in the URL will install 0.0.14-alpha-1
  nix-shell https://github.com/holochain/holochain-rust/archive/3b42375dc31442b62855cff8c339a6422c447176.tar.gz
  • Get the latest released basic-chat
  wget --header='Accept:application/octet-conversation' https://api.github.com/repos/holochain/peer-chat/releases/assets/12405253 -O basic-chat.zip
  unzip basic-chat.zip
  • Open the my-conductor-config.toml file in your favourite editor
  • Create yourself an Agent Keystore and update the [[agents]] section of the my-conductor-config.toml following the steps at the top of the [[agents]] section
  hc keygen

  This will create a new agent keystore and populate it with an agent keybundle
  containing a public and a private key, for signing and encryption by the agent.
  This keybundle will be stored encrypted by passphrase within the keystore file.
  The passphrase is securing the keys and will be needed, together with the file,
  in order to use the key.
  Please enter a secret passphrase below. You will have to enter it again
  when unlocking the keybundle to use within a Holochain conductor.
  Passphrase:
  Re-enter passphrase:
  Generating keystore (this will take a few moments)...

  Succesfully created new agent keystore.

  Public address: HcScjdnxMF3Stafva7bpiFhst7Sywx9c3ip7AnuaFfhjeerdyIdWBOiVn6udsar
  Keystore written to: /Users/philipbeadle/Library/Preferences/org.holochain.holochain/keys/HcScjdnxMF3Stafva7bpiFhst7Sywx9c3ip7AnuaFfhjeerdyIdWBOiVn6udsar

  You can set this file in a conductor config as keystore_file for an agent.
  • Run basic-chat on holochain
  holochain -c ./my-conductor-config.toml

sudo lsof -i :PORT sudo kill -9 PID

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

At a minimum you will need to have the binaries for the holochain conductor installed on your system. See the official installation instructions.

Be sure to use the v0.0.17-alpha2 release for the CLI and Conductor.

Running

From the project root, run the script to download the DNA/UI and then start the conductor

npm install
npm run fetch
npm run hc:start

or alternatively to call the conductor directly

npm install
npm run fetch
holochain -c ./conductor-config.toml

This will run the DNA as well serve the user interface. To load the app, just browse to http://localhost:3000.

Networking

If you want to try and connect to other nodes this also requires the holochain networking library n3h.

Instructions for networking can be found in the conductor config file.

Building from Source

Holochain DNA

Building the DNA also requires that the holochain developer CLI, hc, is installed. You can run the helper script

npm run hc:build

or use the CLI directly

mkdir -p dna
cd dna-src
hc package --strip-meta -o ../dna/peer-chat.hcpkg

Be careful! If you are trying to network with other agents it is best to use a pre-built DNA. Any differences in compiler configuration may lead to the DNA hash being different and the nodes will not be able to communicate.

UI

cd ui-src
npm install
npm run build

Built With

A huge acknowledgement to Pusher for providing an open source React chat UI (https://github.com/pusher/react-slack-clone)

Authors

License

This project is licensed under the GPL-3 License - see the LICENSE.md file for details

peer-chat-redux's People

Contributors

connoropolous avatar jeluard avatar lucksus avatar philipbeadle avatar thedavidmeister avatar willemolding avatar zippy avatar zo-el avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

peer-chat-redux's Issues

hc:test needs 2 Dioramas

Some of the tests need 2 chat instances and some only 1, atm Hachiko errors if an instance is not used in a test. Setup 2 Dioramas to avoid the error.

Need a way to reload messages

Clicking on the channel item in the left side will refresh the messages but this is non-obvious. Make an explicit refresh button

Issues when following getting started

The getting started guide doesn't mention holochain-basic-chat.dna.json. Using the one from latest release I can get the process running but it then crash because of missing n3h binary.

Thread '<unnamed>' panicked at 'assertion failed: `(left == right)`

Description

Hey, I tried running your App as a first project to get into Holochain (great Work btw with Holochain and the App) and everything works fine until I enable the n3h module for networking. I start the App with 'npm run hc:start' and it starts fine, but when I want to register on the UI by typing in Username and an image link, the UI gets stuck in a somehow loading screen where and I get this Error from the console.

I'd be very happy about any help, tips or hints ๐Ÿ˜„

Log Output

Here the Output after successfully starting:

npm run hc:start
> [email protected] hc:start /Users/jonny/Desktop/holochain-basic-chat/Node1
> holochain -c ./conductor-config.toml

Using config path: ./conductor-config.toml
Spawning network with working directory: /tmp
(@hackmode@) [t] bound to tcp://127.0.0.1:49398
(@hackmode@) [i] p2p bound [
  "/ip4/127.0.0.1/tcp/49399/ipfs/QmTbqN69WYyDecCJivvGQMpJKcPZYUu1i8JB6u4hvP9cVp",
  "/ip4/192.168.178.28/tcp/49399/ipfs/QmTbqN69WYyDecCJivvGQMpJKcPZYUu1i8JB6u4hvP9cVp"
]
READY! tcp://127.0.0.1:49398 ["/ip4/127.0.0.1/tcp/49399/ipfs/QmTbqN69WYyDecCJivvGQMpJKcPZYUu1i8JB6u4hvP9cVp", "/ip4/192.168.178.28/tcp/49399/ipfs/QmTbqN69WYyDecCJivvGQMpJKcPZYUu1i8JB6u4hvP9cVp"]
(@hackmode@) [t] running
Network spawned with binding: "tcp://127.0.0.1:49398"
Reading DNA from dna/holo-chat.hcpkg
(@hackmode@) [t] clientAdd 00800041a7
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"requestState"},"fromZmqId":"00800041a7"}
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"trackDna","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","agentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L"},"fromZmqId":"00800041a7"}
(@hackmode@) [t] REGISTER AGENT QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK sandwich--------------------------------------------------------------------------AAAEqzh28L
(@hackmode@) [t] PEER INDEXED {"type":"agent","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","agentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","address":"hackmode:peer:discovery:sandwich--------------------------------------------------------------------------AAAEqzh28L","transportId":"QmTbqN69WYyDecCJivvGQMpJKcPZYUu1i8JB6u4hvP9cVp"}
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"publishEntry","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","address":"sandwich--------------------------------------------------------------------------AAAEqzh28L","content":{"entry":{"AgentId":{"nick":"HoloTester1","key":"sandwich--------------------------------------------------------------------------AAAEqzh28L"}},"header":{"entry_type":"AgentId","entry_address":"sandwich--------------------------------------------------------------------------AAAEqzh28L","provenances":[["sandwich--------------------------------------------------------------------------AAAEqzh28L","TODO"]],"link":"QmZFijX3gfZ9uciwuvp6i9XnCupCDoFVNu9SrRn6Nvv7iX","link_same_type":null,"link_crud":null,"timestamp":"1970-01-01T00:00:00+00:00"}}},"fromZmqId":"00800041a7"}
(@hackmode@) [t] dhtEntry is known: sandwich--------------------------------------------------------------------------AAAEqzh28L
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"publishMeta","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","entryAddress":"sandwich--------------------------------------------------------------------------AAAEqzh28L","attribute":"crud-status","contentList":["live"]},"fromZmqId":"00800041a7"}
(@hackmode@) [t] publishMeta ["live"]
(@hackmode@) [t] got dhtMeta {"type":"dhtMeta","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","entryAddress":"sandwich--------------------------------------------------------------------------AAAEqzh28L","attribute":"crud-status","contentList":["live"]}
(@hackmode@) [t] metaContent is known: live
(@hackmode@) [t] Sending IPC handleStoreMeta:  []
2019-02-28 09:59:24:holo-chat: debug/net/handle: HandleStoreMeta: DhtMetaData { dna_address: HashString("QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK"), provider_agent_id: "sandwich--------------------------------------------------------------------------AAAEqzh28L", entry_address: HashString("sandwich--------------------------------------------------------------------------AAAEqzh28L"), attribute: "crud-status", content_list: [] }
2019-02-28 09:59:24:holo-chat: debug/net/handle: HandleStoreMeta: got CRUD status. processing...
2019-02-28 09:59:24:holo-chat: debug/conductor:  instantiated
adding ui interface ui-interface
Successfully loaded 1 instance configurations
Starting all of them...
Starting instance "holo-chat"...
Starting interfaces...
Done.
Starting UI servers
Starting all servers
About to serve path "./ui" at http://127.0.0.1:3000
Server started for "ui-interface"
Listening on http://127.0.0.1:3000

And here the Output after submitting the User Registration:

(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"fetchMeta","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","_id":"puid-3-0","requesterAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","entryAddress":"sandwich--------------------------------------------------------------------------AAAEqzh28L","attribute":"link__profile"},"fromZmqId":"00800041a7"}
2019-02-28 09:59:52:holo-chat: debug/net/handle: HandleFetchMeta: FetchMetaData { dna_address: HashString("QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK"), request_id: "puid-3-0", requester_agent_id: "sandwich--------------------------------------------------------------------------AAAEqzh28L", entry_address: HashString("sandwich--------------------------------------------------------------------------AAAEqzh28L"), attribute: "link__profile" }
2019-02-28 09:59:52:holo-chat: debug/reduce/get_links: Responding to GET LINKS request from sandwich--------------------------------------------------------------------------AAAEqzh28L with []
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"handleFetchMetaResult","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","_id":"puid-3-0","requesterAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","entryAddress":"sandwich--------------------------------------------------------------------------AAAEqzh28L","attribute":"link__profile","contentList":[[]]},"fromZmqId":"00800041a7"}
2019-02-28 09:59:52:holo-chat: debug/net/handle: FetchMetaResult: FetchMetaResultData { dna_address: HashString("QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK"), request_id: "puid-3-0", requester_agent_id: "sandwich--------------------------------------------------------------------------AAAEqzh28L", provider_agent_id: "sandwich--------------------------------------------------------------------------AAAEqzh28L", entry_address: HashString("sandwich--------------------------------------------------------------------------AAAEqzh28L"), attribute: "link__profile", content_list: [Array([])] }
2019-02-28 09:59:52:holo-chat: debug/reduce/handle_get_links_result: Got response from sandwich--------------------------------------------------------------------------AAAEqzh28L: [Array([])]
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"fetchMeta","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","_id":"puid-4-0","requesterAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","entryAddress":"sandwich--------------------------------------------------------------------------AAAEqzh28L","attribute":"link__profile"},"fromZmqId":"00800041a7"}
2019-02-28 09:59:54:holo-chat: debug/net/handle: HandleFetchMeta: FetchMetaData { dna_address: HashString("QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK"), request_id: "puid-4-0", requester_agent_id: "sandwich--------------------------------------------------------------------------AAAEqzh28L", entry_address: HashString("sandwich--------------------------------------------------------------------------AAAEqzh28L"), attribute: "link__profile" }
2019-02-28 09:59:54:holo-chat: debug/reduce/get_links: Responding to GET LINKS request from sandwich--------------------------------------------------------------------------AAAEqzh28L with []
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"handleFetchMetaResult","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","_id":"puid-4-0","requesterAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","entryAddress":"sandwich--------------------------------------------------------------------------AAAEqzh28L","attribute":"link__profile","contentList":[[]]},"fromZmqId":"00800041a7"}
2019-02-28 09:59:54:holo-chat: debug/net/handle: FetchMetaResult: FetchMetaResultData { dna_address: HashString("QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK"), request_id: "puid-4-0", requester_agent_id: "sandwich--------------------------------------------------------------------------AAAEqzh28L", provider_agent_id: "sandwich--------------------------------------------------------------------------AAAEqzh28L", entry_address: HashString("sandwich--------------------------------------------------------------------------AAAEqzh28L"), attribute: "link__profile", content_list: [Array([])] }
2019-02-28 09:59:54:holo-chat: debug/reduce/handle_get_links_result: Got response from sandwich--------------------------------------------------------------------------AAAEqzh28L: [Array([])]
2019-02-28 10:01:10:holo-chat: debug/workflow/authoring_entry: Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd with content: App(AppEntryType("anchor"), JsonString("\"member_directory\""))
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd: validating...
2019-02-28 10:01:11:holo-chat: Authoring entry Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd: is valid!
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd: committing...
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd: committed
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd: publishing...
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd: published!
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"publishEntry","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","address":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","content":{"entry":{"App":["anchor","\"member_directory\""]},"header":{"entry_type":{"App":"anchor"},"entry_address":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","provenances":[["sandwich--------------------------------------------------------------------------AAAEqzh28L","TODO"]],"link":"QmYDJqc6v2gWXwhgjdDWEz4bUCkYa9hwkmpruy8HGWW4bn","link_same_type":null,"link_crud":null,"timestamp":"1970-01-01T00:00:00+00:00"}}},"fromZmqId":"00800041a7"}
(@hackmode@) [t] dhtEntry is known: Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"publishMeta","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","entryAddress":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","attribute":"crud-status","contentList":["live"]},"fromZmqId":"00800041a7"}
(@hackmode@) [t] publishMeta ["live"]
(@hackmode@) [t] got dhtMeta {"type":"dhtMeta","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","entryAddress":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","attribute":"crud-status","contentList":["live"]}
(@hackmode@) [t] metaContent is known: live
(@hackmode@) [t] Sending IPC handleStoreMeta:  []
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry: Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG with content: LinkAdd(LinkData { action_kind: ADD, link: Link { base: HashString("Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd"), target: HashString("sandwich--------------------------------------------------------------------------AAAEqzh28L"), tag: "member_tag" } })
2019-02-28 10:01:11:holo-chat: debug/net/handle: HandleStoreMeta: DhtMetaData { dna_address: HashString("QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK"), provider_agent_id: "sandwich--------------------------------------------------------------------------AAAEqzh28L", entry_address: HashString("Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd"), attribute: "crud-status", content_list: [] }
2019-02-28 10:01:11:holo-chat: debug/net/handle: HandleStoreMeta: got CRUD status. processing...
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG: validating...
2019-02-28 10:01:11:holo-chat: Authoring entry Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG: is valid!
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG: committing...
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG: committed
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG: publishing...
2019-02-28 10:01:11:holo-chat: debug/reduce/link_meta: Publishing link meta for link: Link { base: HashString("Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd"), target: HashString("sandwich--------------------------------------------------------------------------AAAEqzh28L"), tag: "member_tag" }
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG: published!
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry: QmcrBRZLxkTK4EUdNtSqxdRjkKfxSKHjDzRkEwjJbwz3rY with content: App(AppEntryType("chat_profile"), JsonString("{\"name\":\"Node1\",\"avatar_url\":\"https://images.ecosia.org/GE1vVFoHyNHkvmyUgzFjQsYMuD4=/0x390/smart/http%3A%2F%2Fwww.activityshelter.com%2Fwp-content%2Fuploads%2F2016%2F06%2Fnumber-1-picture-red-color.png\",\"address\":\"sandwich--------------------------------------------------------------------------AAAEqzh28L\"}"))
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"publishEntry","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","address":"Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG","content":{"entry":{"LinkAdd":{"action_kind":"ADD","link":{"base":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","target":"sandwich--------------------------------------------------------------------------AAAEqzh28L","tag":"member_tag"}}},"header":{"entry_type":"LinkAdd","entry_address":"Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG","provenances":[["sandwich--------------------------------------------------------------------------AAAEqzh28L","TODO"]],"link":"Qmd94zGW45hpsL5QngGHoWtCo5kHtbY3CjBB1LFhKnPUVa","link_same_type":null,"link_crud":null,"timestamp":"1970-01-01T00:00:00+00:00"}}},"fromZmqId":"00800041a7"}
(@hackmode@) [t] dhtEntry is known: Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG
(@hackmode@) [t] Received IPC:  {"name":"json","data":{"method":"publishMeta","dnaAddress":"QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","entryAddress":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","attribute":"link","contentList":[{"entry":{"LinkAdd":{"action_kind":"ADD","link":{"base":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","target":"sandwich--------------------------------------------------------------------------AAAEqzh28L","tag":"member_tag"}}},"header":{"entry_type":"LinkAdd","entry_address":"Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG","provenances":[["sandwich--------------------------------------------------------------------------AAAEqzh28L","TODO"]],"link":"Qmd94zGW45hpsL5QngGHoWtCo5kHtbY3CjBB1LFhKnPUVa","link_same_type":null,"link_crud":null,"timestamp":"1970-01-01T00:00:00+00:00"}}]},"fromZmqId":"00800041a7"}
(@hackmode@) [t] publishMeta [{"entry":{"LinkAdd":{"action_kind":"ADD","link":{"base":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","target":"sandwich--------------------------------------------------------------------------AAAEqzh28L","tag":"member_tag"}}},"header":{"entry_type":"LinkAdd","entry_address":"Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG","provenances":[["sandwich--------------------------------------------------------------------------AAAEqzh28L","TODO"]],"link":"Qmd94zGW45hpsL5QngGHoWtCo5kHtbY3CjBB1LFhKnPUVa","link_same_type":null,"link_crud":null,"timestamp":"1970-01-01T00:00:00+00:00"}}]
(@hackmode@) [t] got dhtMeta {"type":"dhtMeta","providerAgentId":"sandwich--------------------------------------------------------------------------AAAEqzh28L","entryAddress":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","attribute":"link","contentList":[{"entry":{"LinkAdd":{"action_kind":"ADD","link":{"base":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","target":"sandwich--------------------------------------------------------------------------AAAEqzh28L","tag":"member_tag"}}},"header":{"entry_type":"LinkAdd","entry_address":"Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG","provenances":[["sandwich--------------------------------------------------------------------------AAAEqzh28L","TODO"]],"link":"Qmd94zGW45hpsL5QngGHoWtCo5kHtbY3CjBB1LFhKnPUVa","link_same_type":null,"link_crud":null,"timestamp":"1970-01-01T00:00:00+00:00"}}]}
(@hackmode@) [t] metaContent is known: {"entry":{"LinkAdd":{"action_kind":"ADD","link":{"base":"Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd","target":"sandwich--------------------------------------------------------------------------AAAEqzh28L","tag":"member_tag"}}},"header":{"entry_type":"LinkAdd","entry_address":"Qmd9v6KAXzwVp7fg7UYFsbw8ifYGuGcsiSJHPDw1Jz7umG","provenances":[["sandwich--------------------------------------------------------------------------AAAEqzh28L","TODO"]],"link":"Qmd94zGW45hpsL5QngGHoWtCo5kHtbY3CjBB1LFhKnPUVa","link_same_type":null,"link_crud":null,"timestamp":"1970-01-01T00:00:00+00:00"}}
(@hackmode@) [t] Sending IPC handleStoreMeta:  []
2019-02-28 10:01:11:holo-chat: debug/net/handle: HandleStoreMeta: DhtMetaData { dna_address: HashString("QmV9DKriDMckL2kKgkJeAEtPqYHWnyBymNKhGwbUsRnoaK"), provider_agent_id: "sandwich--------------------------------------------------------------------------AAAEqzh28L", entry_address: HashString("Qmeb26KAiWwoG29VsCARZibdUwchfBD8D771QkJRB41Nxd"), attribute: "link", content_list: [] }
2019-02-28 10:01:11:holo-chat: debug/net/handle: HandleStoreMeta: got LINK. processing...
thread '<unnamed>' panicked at 'assertion failed: `(left == right)`

Diff < left / right > :
<0
>1

', core/src/network/handler/store.rs:32:13
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/QmcrBRZLxkTK4EUdNtSqxdRjkKfxSKHjDzRkEwjJbwz3rY: validating...
2019-02-28 10:01:11:holo-chat: Authoring entry QmcrBRZLxkTK4EUdNtSqxdRjkKfxSKHjDzRkEwjJbwz3rY: is valid!
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/QmcrBRZLxkTK4EUdNtSqxdRjkKfxSKHjDzRkEwjJbwz3rY: committing...
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/QmcrBRZLxkTK4EUdNtSqxdRjkKfxSKHjDzRkEwjJbwz3rY: committed
2019-02-28 10:01:11:holo-chat: debug/workflow/authoring_entry/QmcrBRZLxkTK4EUdNtSqxdRjkKfxSKHjDzRkEwjJbwz3rY: publishing...
(@hackmode@) [t] clientAdd 00800041a7

Specs

Mac Os 10.14.2
hc 0.0.4-alpha
holochain 0.0.4-alpha
n3h v0.0.4-alpha
holochain-rust 0.0.4-alpha

My thoughts to it

Although I just started with Holochain and with Rust in general I digged a bit into the code and found this in the console output mentioned line ``thread '' panicked at 'assertion failed: (left == right)``` in the holochain-rust library in core/src/network/handler/store.rs:34 although it says store.rs:32 in the output. There it says assert_eq!(dht_meta_data.content_list.len(), 1);` which would fit to the error message but after a few days of digging I still don't really get why it is empty and where exactly the data is coming from. I suppose the UI calls the DNA Zome function and the Zome function somehow passes the Data on to the holochain-rust library but as I said, after I lost track of the Data after the Zome Function got called with it.

Thanks!

files from the config don't exist

In conductor-config.toml:

  1. keystore_file = "./keystore.key" ---> it doesn't exist.

  2. file = "holo-chat.dna.json" ---> it doesn't exist.

What do they have to look like? How are they created initially: manually or generated?

Better feedback for delays

Currently everything in Holochain takes a pretty long time. The UI should indicate that changes are being processed (e.g. pending sending message, creating channel) to improve the UX

Repo is to large to work with effectively

This is my fault since I proposed we commit the UI/DNA every commit so people don't have to build it to play around. Now cloning the repo is over 200MB which is going to stop a lot of people from testing it out anyway!

I propose we alter history an get rid of the committed DNAs

Global usage

If I replace "bootstrap_nodes" value with my static ip, can I communicate with nodes outside the local network?

Incorrect link in nix section

The following instruction doesn't work:

wget --header='Accept:application/octet-stream' https://api.github.com/repos/holochain/holochain-basic-chat/releases/assets/12405253 -O basic-chat.zip

I tried some alternatives but they do not appear to contain the right files.

Error while trying to boot

When I run the start commands I get a "ConfigError("Could not load key file "./keyfile.txt"")" after being asked for a "PassPhrase".
I have been unable to find this Passphrase in the documentation.
PS. In 0.0.9 Alpha it asked for a "keystore_file" instead of the "key_file" of 0.0.8 Alpha. DS.

what is supposed to happen?

I am new to holochain, and just managed to run this app (I think?). it starts and then .. seems to be loading or something but... really, I don't know what is happening, if this is normal or a problem, if I am missing n3h or not, and if I will see other users in the end if I just start it, or if I have to somehow fetch an index or ....
I wanted to use this app as a hello-world of holochain apps, to see something real happening, and feel inspired. I am not sure if it can serve this need, but It seemed the most likely candidate to me. I am somewhat disillusioned/demotivated after having gone through installing everything.

Just to give a newbs perspective, which I think is important to find new contributers, if not for more.
All the best and keep it up!

missing field `type` for key `network`

I'm attempting to install the chat on my local machine, so far everything been going well, I'm currently at the step where I've just updated 'my-conductor-config.toml' with the results of 'hc keygen'.

Now when attempting the next step 'holochain -c ./my-conductor-config.toml' I'm getting the following error.

holochain -c ./my-conductor-config.toml
Using config path: ./my-conductor-config.toml
Error while trying to boot from config: IoError("Error loading configuration: missing field `type` for key `network`")

I fixed this by adding
'type = "n3h"'

Now I'm getting this error

holochain -c ./my-conductor-config.tomlUsing config path: ./my-conductor-config.toml
Reading DNA from ./dna/holochain-basic-chat.dna.json
Error while trying to boot from config: ConfigError("Could not load DNA file \"./dna/holochain-basic-chat.dna.json\"") under [network] inside 'my-conductor-config.toml'.

Any help would be appreciated.

It would be good to note that I'm using 'hc 0.0.26-alpha1' and 'nix-shell (Nix) 2.2.2'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.