The node object is dynamically created to describe the host that Chef-Client or Chef-Solo are running on.
It contains Attributes and a Run-List
Since Chef-Solo has no central place to store Node data; it requires a JSON file to define the nodes attributes and run-list. By default this is loaded from ~/node.json, or specified on the command line using the -j option.
The Chef-Client uses the Chef-Server to construct the Node data.